T4MVC或MvcFutures用于视图中的强类型链接

时间:2011-02-24 22:17:57

标签: c# asp.net-mvc-3 strongly-typed-view

我正在尝试从我的MVC3项目中减少/消除“魔术字符串”,并且想知道哪种方法会更好:

  1. 使用MvcFutures并执行以下操作:

    var title = "Create New Customer"; 
    Html.ActionLink
        (c => c.Create(), title , new { @class = "button", title = title });
  2. 使用T4MVC

  3. 哪个选项更灵活,性能更高,重构时更容易等等?

    思想?

2 个答案:

答案 0 :(得分:5)

T4MVC,没有比赛。它允许您使用(代码生成的)嵌套类和属性的层次结构来引用视图和控制器操作。这种方法有几个好处 - 可以很容易地发现可用的选项,并且它提供了最佳的性能(与用于强类型的lambda方法相比,肯定是一个巨大的胜利)。

使用T4MVC的虚拟ActionResult类编写自己的扩展也很容易。例如,我有一些ActionImage帮助程序,它们提取必要的路由信息​​以生成结果标记。

T4MVC唯一的缺点是你需要保持生成的代码文件是最新的。您可以通过打开.tt文件或安装一个自动运行.tt文件的扩展名(例如Chirpy)来完成此操作。

答案 1 :(得分:0)

T4MVC表现更好。你对使用表达式感兴趣的MvcFutures中的助手应该比内置方法慢(这些方法不在核心MVC程序集中的原因之一)。一般来说,你应该知道MvcFutures可能有性能和其他功能问题。