我现在已经完成了使用ASP.NET MVC的第一个Web应用程序,总体来说,我还没有抓住为什么这样得到所有的赞誉和荣耀.也许我很顽固我知道什么使MVC伟大的是表现层与业务对象或数据层之间的分离以及无状态操作.我也知道,当你使用这个视图时,看起来代码的可读性差(见我下面的例子).
所以我猜我的问题是…如果分离是关心,为什么不分开.
Web表单查看代码:
//UI <h2><asp:Label ID="lblPageHeader" runat="server" /></h2>
Web表单代码背后:
//CODE BEHIND this.lblPageHeader.Text = myObject.Header;
MVC代码视图:
//UI <h2><%= Html.Encode(Model.PageTitle) %></h2>
MVC控制器代码:
index = new Index { PageText = sb.ToString(),PageTitle = "WELCOME" }; return View(index);
再次,我可能会固执己见,但我在WebForms中真正喜欢的其中一件事就是轻松设置DataSources和Text值等对象属性.看起来这是完全不同的MVC和较少的可读性,这使我想知道长期维护.
编辑
在研究了类型模型后,我认为代码的可读性大大提高.
解决方法
ASP.NET MVC Best Practices,Tips and Tricks
我会写:
<h2><%= Html.Encode(Model.Title) %></h2>
(可以在类型化视图的帮助下)
代替
<h2><%= Html.Encode((MyApp.MyObject)ViewData["PageObject"].Header) %></h2>
我认为这是关于你如何使用它.如果你对经典的ASP.NET感到更加开心,那可能是一个比较好的主意.此外,您还可以从ASP.NET MVC世界(如UI和逻辑分离)中获取好的东西,并将其带入经典的ASP.NET.