Sha*_*yne 8 c# asp.net-mvc t4mvc razor asp.net-mvc-3
我已经使用T4MVC已经有一段时间了,并且喜欢"显式HtmlHelpers用于渲染部分"功能,默认情况下它已关闭.我使用的是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上运行会使其中断(我不想为此维护两个单独的版本).
| 归档时间: |
|
| 查看次数: |
1263 次 |
| 最近记录: |