什么时候T4MVC会支持带有显式HtmlHelper的Razor来渲染部分?

Sha*_*yne 8 c# asp.net-mvc t4mvc razor asp.net-mvc-3

我已经使用T4MVC已经有一段时间了,并且喜欢"显式Ht​​mlHelpers用于渲染部分"功能,默认情况下它已关闭.我使用的是T4MVC 2.6.40版.

我最近升级到MVC3并注意到没有为Razor partials生成明确的HtmlHelpers,所以我查看了T4MVC文本模板的源代码,并找到了一个名为"GetPartials"的方法,它有一行代码如下:

var parts = GetControllers()
        .Select(m => m.ViewsFolder)
        .SelectMany(m => m.Views)
        .Where(m => m.Value.EndsWith(".ascx"));
Run Code Online (Sandbox Code Playgroud)

所以很明显Razor视图不受支持.

我还想提一下,当运行T4模板(右键单击>运行自定义工具)时,我收到编译器警告:"不再支持C#2.0和C#3.5编译器.模板将始终使用版本编译4编译器而不是指定的'v3.5'."

这涉及第18行,其中模板语言属性具有值"C#v3.5".为什么必须有明确的版本依赖?它不只是"C#"吗?

在一篇文章中提出两个单独的问题的道歉.

Dav*_*bbo 11

我刚刚发布了T4MVC 2.6.42来解决这个问题.您可以从Codeplex或NuGet获取它.

请注意,为了让剃刀文件被T4MVC检测为部分,其名称需要以下划线开头(例如_foo.cshtml).如果没有这个限制,我们最终会为所有视图创建辅助方法,这会污染事物而不会增加价值.请注意,MVC团队通常建议使用_前缀部分Razor视图.

至于警告,它是无关的,是良性的.要摆脱它,只需将language ="C#v3.5"更改为language ="C#".我无法在正式版本中进行更改,因为在3.5上运行会使其中断(我不想为此维护两个单独的版本).