【问题标题】:Using T4MVC in real project在实际项目中使用 T4MVC
【发布时间】:2011-02-12 06:35:17
【问题描述】:

T4MVC 很酷,但是在我的项目中集成它时遇到了一些问题,真的很感谢任何帮助:

  1. 我的所有操作都收到了这样的警告(我使用 SnippetsBaseController 作为我所有控制器类的基类:

    警告 26 'Snippets.Controllers.ErrorController.Actions' 隐藏了继承的成员 'Snippets.Controllers.Base.SnippetsBaseController.Actions'。如果打算隐藏,请使用 new 关键字。 C:\projects_crisp-source_crisp\crisp-sn-ps\Snippets\T4MVC.cs 481 32 个片段

  2. 是否可以有自定义路由的强类型名称,例如,我有这样定义的路由:

        routes.MapRoute(
            "Feed",
            "feed/",
            MVC.Snippets.Rss()
        );
    

是否可以更换:

<%= Url.RouteUrl("Feed") %>

类似:

<%= Url.RouteUrl(MVC.Routes.Feed) %>
  1. 拥有指向静态文件的强类型链接真的很酷,但是我在我的页面中使用&lt;base /&gt;,所以我不需要任何 URL 处理,我可以重新定义 T4MVCHelpers.ProcessVirtualPath 不调整 T4MVC.tt 本身?

  2. T4MVC 始终生成带有大写控制器和操作名称的链接,例如: /Snippets/Add 而不是 /sn-ps/add。是否可以将它们生成为小写?

【问题讨论】:

标签: asp.net-mvc t4mvc


【解决方案1】:
  1. 您能否将基本控制器类更改为抽象类?我想这会解决它。

  2. 查看这篇讨论这个的帖子:http://forums.asp.net/t/1535567.aspx

  3. 如果您查看 t4mvc.settings.t4,您会看到一个 ProcessVirtualPathDefault 方法,您可以在不接触主 .tt 文件的情况下进行更改。

  4. http://forums.asp.net/t/1532057.aspx。里面有建议的修复,虽然还没有提交(但是你可以试试)。

大卫

【讨论】:

  • 对于 (1)。切换到抽象基类有所帮助,但一个警告仍然有效:Snippets.Controllers.SnippetsController.View()' hides inherited member 'System.Web.Mvc.Controller.View()'. Use the new keyword if hiding was intended
  • 我认为 T4MVC 不会生成名为“视图”的东西。你确定它不是你的基本控制器本身的东西吗?
  • 啊哈。它似乎与 T4MVC 无关,我有一个名为 View() 的动作,我会尝试使用 [ActionName]。感谢您回答我快速而简单的问题!
猜你喜欢
  • 2011-03-17
  • 2023-04-10
  • 1970-01-01
  • 2015-04-03
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多