Fel*_*lix 10 asp.net-mvc t4 visual-studio-2010
我有一个类似于这里描述的问题:MVC T4 MvcTextTemplateHost和自定义"控制器"T4模板,但希望,更简单.
我有一个用于ASP.NET MVC项目的自定义视图模板(View.tt,Create.tt).我无法弄清楚如何在这些视图模板中获取控制器名称.mvcHost.ControllerName和mvcHost.ControllerRootName在视图模板中都为空.但是,管道控制器名称中的某个位置是已知的,因为视图是在ControllerName文件夹中创建的.我想在模板本身中引用它.
具体来说,我想生成HTML.ActionLink("Edit", MVC.<controllername>.Edit(id))
而不是HTML.ActionLink("Edit", "Edit", new {id = item.id})
是否可以在View模板中获取控制器的名称?
因为按照惯例,我几乎总是使用与我命名模型相同的控制器名称,所以我在模板中使用此代码来获取模型名称及其控制器名称:
@Html.ActionLink("Create new",
MVC.<#= mvcHost.ViewDataTypeName.Split('.').Last() #>.Create())
Run Code Online (Sandbox Code Playgroud)
我认为没有办法在 MVC 1.0 或 MVC 2 中获取该信息。主机中的 ControllerRootName 和 ControllerName 属性适用于控制器 T4 模板,而不适用于视图 T4 模板。
我将看看是否可以向 T4 主机添加更多信息,以便在生成视图时启用这些属性。
生成的文件显示在正确的文件夹中的原因是 MVC 项目系统获取 T4 模板的输出并将其放在那里。T4系统本身不参与此过程。
归档时间: |
|
查看次数: |
3786 次 |
最近记录: |