在实际项目中使用T4MVC

art*_*olk 9 asp.net-mvc t4mvc

T4MVC很酷,但我在项目中集成它有几个问题,任何帮助都非常适合:

  1. 我对所有操作都有这样的警告(我SnippetsBaseController用作所有控制器类的基类:

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

  2. 是否可以使用强类型的自定义路由名称,例如,我的路由定义如下:

        routes.MapRoute(
            "Feed",
            "feed/",
            MVC.Snippets.Rss()
        );
    
    Run Code Online (Sandbox Code Playgroud)

是否可以替换:

<%= Url.RouteUrl("Feed") %>
Run Code Online (Sandbox Code Playgroud)

有类似的东西:

<%= Url.RouteUrl(MVC.Routes.Feed) %>
Run Code Online (Sandbox Code Playgroud)
  1. 有强烈类型的静态文件链接真的很酷,但我<base />在我的页面中使用,所以我不需要任何URL处理,我可以重新定义 T4MVCHelpers.ProcessVirtualPath而不调整T4MVC.tt自己吗?

  2. T4MVC始终使用大写的控制器和动作名称生成链接,例如:/ Snippets/Add而不是/ snippets/add.是否可以生成小写?

Dav*_*bbo 18

  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()'隐藏继承的成员'System.Web.Mvc.Controller.View()'.如果隐藏意图,请使用新关键字 (2认同)
  • Ahhr.它似乎与T4MVC无关,我有一个名为View()的动作,我会尝试使用[ActionName].谢谢你回答我快速而简单的问题! (2认同)