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

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

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

      var title =“创建新客户”; 
     Html.ActionLink
         (c => c.Create(),title,new {@class =“button”,title = title}); 
  2. 使用T4MVC

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

思考?

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

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

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

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