asp.net-mvc - 在 View T4 模板中获取 Controller 名称

标签 asp.net-mvc visual-studio-2010 t4

我有一个类似于这里描述的问题:MVC T4 MvcTextTemplateHost and Customized "Controller" T4 Template但希望更简单。

我有一个用于 ASP.NET MVC 项目的自定义 View 模板(View.tt、Create.tt)。我不知道如何在这些 View 模板中获取 Controller 名称。 mvcHost.ControllerName 和 mvcHost.ControllerRootName 在 View 模板中都是空的。但是,管道 Controller 名称中的某处是已知的,因为 View 是在 ControllerName 文件夹中创建的。我想在模板中引用它。

具体来说,我想生成 HTML.ActionLink("Edit", MVC.<controllername>.Edit(id))而不是 HTML.ActionLink("Edit", "Edit", new {id = item.id})
是否可以在 View 模板中获取 Controller 的名称?

最佳答案

我认为没有办法在 MVC 1.0 或 MVC 2 中获取该信息。来自主机的 ControllerRootName 和 ControllerName 属性用于 Controller T4 模板,而不用于 View T4 模板。

我会看看我们是否可以向 T4 主机添加更多信息以在生成 View 时启用这些属性。

生成的文件出现在正确的文件夹中的原因是 MVC 项目系统获取 T4 模板的输出并将其放在那里。 T4 系统本身不参与此过程。

关于asp.net-mvc - 在 View T4 模板中获取 Controller 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3107219/

相关文章:

visual-studio - 在 Visual Studio 中重建 C# 项目的原因

asp.net-mvc - 为什么 MVC 脚手架会失败? (在 VS2012 和 VS2013 中有不同的错误)

.net - 使用自定义应用程序分发 microsoft.visualstudio.texttemplating.dll

css - ASP.Net MVC 共享布局中的一些 CSS 和 JS 不应在内容页面中使用

c# - 调用 Actionfilter 时未呈现 _Layout 上的部分 View

asp.net-mvc - IIS6 中的 ASP.NET MVC 压缩选项

asp.net - SignalR 调用服务器方法在 VS 中本地工作,但在 IIS 7.5 中不工作

visual-studio - Visual Studio 创建无效的 Resx 文件

编译器行为?

c# - 尝试将参数传递给 t4 模板时出错