是否有可能在视图中构建一个没有魔术字符串的ASP MVC应用程序?

ili*_*ian 7 asp.net-mvc

我是ASP .Net MVC的新手,我上周从Apress购买了Pro ASP .Net MVC Framework书,这证明非常有帮助.

到目前为止我看到的问题是,几乎所有的示例视图都充斥着神奇的字符串.我已经设法通过并找出了一些替代方案,但代码开始变得难以阅读.例如:

<% using(Html.BeginForm("RemoveFromCart", "Cart")){ %>
    <%= Html.Hidden("ProductID", line.Product.ProductID) %>
    <%= Html.Hidden("returnUrl", ViewData["returnRrl"]) %>
    <input type="submit" value="Remove" />
<% } %>
Run Code Online (Sandbox Code Playgroud)

变为:

<% using (Html.BeginForm<CartController>(c => c.RemoveFromCart(null, line.Product.ProductID, (string)ViewData["returnUrl"]))) { %>
    <input type="submit" value="Remove" />
<% } %>
Run Code Online (Sandbox Code Playgroud)

我可以逃避这个例子,因为第一个参数RemoveFromCart是通过a从会话中拉出来的ModelBinder,但是读起来并不直观.

我担心的是,我将花时间与框架作斗争以避免魔术字符串,并且在此过程中最终会出现标记,这是一种难以阅读的问题.在人们的经验中这是一个有效的关注,并在网络上有一个参考,其中有一个"魔术字符串方法"到"类型安全方法"查找表?

Ode*_*ode 6

通过使用T4MVC和MVC Futures,您可以轻松消除99%的魔术字符串.

这两个项目都可以从http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471获得.

T4MVC将负责控制器,操作和路由,而期货内容具有强类型的HTML帮助程序.MVCContrib项目是另一个需要关注的项目,因为它包含一些强类型的流畅HTML构建器.