2011-02-24 30 views
3

我试图降低/消除我的MVC3项目“魔术字符串”,并想知道哪种方法会更好:T4MVC或在视图强类型的链接MvcFutures

  1. 使用MvcFutures,做一些事情,如:

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

哪个选项是架F更灵活,更高效,更容易重构等等,等等?

想法?

回答

5

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

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

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

+0

你可以分享你提到的一个简单的自定义帮助(ActionImage)吗? – zam6ak 2011-02-24 23:26:35

+0

@ zam6ak http://stackoverflow.com/questions/5111110/mvc3-actionlink-with-images-but-without-mvcfutures :) – 2011-02-25 08:12:31

+0

是的,我发表评论后,我看到了这一点:)尼斯 – zam6ak 2011-02-25 15:14:02

0

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