位置:海鸟网 > IT > ASP.NET >

ASP.NET MVC的Web应用程序更直观

  在第二次张贴关于您好(即可以在这里找到第一),我将使用的应用程序更复杂的部分之一,活动头版,以说明它的MVC的Web应用程序作出书面各地一些更直观。

  该项目的Hello Web应用程序写在ASP.NET MVC的,这是微软最新的ASP.NET框架。它使用的模型,视图,控制器的设计模式,并影响像Ruby on Rails的框架严重。

  

  在视图,我们也有我们的HTML,这是此页面的宝贵,因为我们完全控制了让所有主要浏览器的布局恰到好处。因此,我们刚刚超过呈现一个空座位的smiley.jpg形象排座椅的迭代(星期六== null)和当有人在他们的座位,我们提供Twitter的化身。

  <table class="seatingPlan" cellpadding="0" cellspacing="0" border="0"> <% var sats = (IList<Sat>)ViewData["Sats"]; %> <% foreach (var row in Model.Seats.GroupBy(s => s.Row)) { %><tr> <% foreach (var seat in row) { %><td> <% var sat = sats.SingleOrDefault(s => s.SeatID == seat.SeatID); %> <% if (sat == null) { %><img src="<%= Url.Content("~/Content/images/presentation/smiley.jpg") %>" /> <% } else { %><img src="<%= sat.User.ImageURL %>" /> <% } %></td> <% } %></tr> <% } %></table>这是更加直观和清楚总比创建用户控件类,然后是动态的隐藏代码实例和作为一个ASP TableRow,然后将子控件添加又增加了一个ASP表,等您的代码前面会的基本一条线...<asp:Table runat="server" ID="SeatsTable" />...完全隐藏在背后的代码,这将有可能是数据访问代码和布局风格混乱复杂打结在一起。这正是你在的WebForms工作。那么,为什么这更好?这可能有两个WebForms和MVC之间的主要差别。第一,分离关注:MVC的鼓励你分开从您的UI从您的网址的路由域模型。的WebForms实际上使不少困难,如果有的话,前面的代码隐藏模式/鼓励相反。其次,没有不必要的漏水的抽象:的WebForms试图隐瞒事实的开发商,他是在一个世界工作字符串操作较无状态的协议。在简单的情况下这可以工作,例如:经典点击的按钮到化妆品的标签,说,你好的例子。但在现实世界中,很快得到抽象的方式,你最终不得不非常努力地去争取一些东西,很简单。 MVC中没有人对抽象的战斗,你有你的Web应用程序的所有部分完全控制。我要去把自己放在那里,说的MVC应该被看作是对的WebForms更换,因为我不觉得有任何真正的世界情况下,当MVC是不是正确的选择。