我已经使用T4MVC一段时间了,喜欢“显式HtmlHelpers渲染局部”功能,该功能默认情况下处于关闭状态。我正在使用T4MVC版本2.6.40。
我最近升级到MVC3,注意到没有为Razor局部生成任何显式的HtmlHelpers,因此我查看了T4MVC文本模板的源代码,发现了一个名为“GetPartials”的方法,该方法具有以下代码行:
var parts = GetControllers()
.Select(m => m.ViewsFolder)
.SelectMany(m => m.Views)
.Where(m => m.Value.EndsWith(".ascx"));
因此很明显,不支持Razor View 。
我还想提到,在运行T4模板时(右键单击>运行自定义工具),我收到一个编译器警告,指出:“不再支持C#2.0和C#3.5编译器。模板将始终使用该版本进行编译4编译器,而不是指定的“v3.5”。”
这与第18行有关,其中模板语言属性的值为“C#v3.5”。为什么它必须具有显式的版本依赖性?不仅可以是“C#”吗?
抱歉在一个帖子中问两个单独的问题。
最佳答案
我刚刚发布了T4MVC 2.6.42来解决这个问题。您可以从Codeplex或NuGet获取它。
请注意,为了使T4MVC将 Razor 文件检测为部分文件,其名称必须以下划线开头(例如_foo.cshtml)。如果没有这个限制,我们最终将为所有 View 创建辅助方法,这将污染事物并且不会增加值(value)。请注意,MVC团队通常建议在_部分Razor View 前添加_。
至于警告,它是无关的并且是良性的。要摆脱它,只需将language =“C#v3.5”更改为language =“C#”。我不能在正式版本中进行更改,因为那样会使其在3.5版上运行时中断(并且我不想仅为此维护两个单独的版本)。
关于c# - T4MVC什么时候会支持带有显式HtmlHelpers的Razor来呈现局部图像?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4861113/