Emm*_*mma 11 c# asp.net-mvc loops
我正在使用MVC在ASP.Net中构建一个网站,并且需要列出一组结果.以下两项工作正如我所希望的那样,但我想知道哪种更快,更清洁和/或更好 - 或者如果另一种选择完全更合适?
注意:ViewData.Model
是类型的IEnumerable<Thing>
,我需要显示更多的属性Name
- 我已经裁剪了这个例子的代码.
<% foreach (var thing in ViewData.Model)
{ %>
<p><%= thing.Name %></p>
<% }; %>
Run Code Online (Sandbox Code Playgroud)
<% rptThings.DataSource = ViewData.Model;
rptThings.DataBind(); %>
<asp:Repeater ID="rptThings" runat="server">
<ItemTemplate>
<p><%# DataBinder.Eval(Container.DataItem, "Name") %></p>
</ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)
Pur*_*ome 12
foreach
是ASP.NET MVC的方法.为什么?我个人避免任何遗留asp:xxx
控制..因为他们可能有webforms模型存在的膨胀.其次,event delegates
你必须连线的是什么?你开始混合和匹配架构,IMO,所以这可能会严重导致真正的spagetti代码与疯狂的维护和支持问题.(IMO:DataBinder.Eval ==非常邪恶:( :( :()
asp:xxx
我使用的唯一控件是mastpage / content control
(因为它没有替代品).
最后,foreach
在asp.net mvc中做的不是spagetti代码,正如许多人所认为的那样.我知道当我第一次看到最初的mvc演示时我做了.如果有的话,它实际上使UI比以前更清洁,imo ..更加可维护.IMO,spagetti代码就是当你有很多<% .. %>
业务逻辑和ui逻辑和(gag)db访问时.请记住,这是窥视在asp.net 经典的狂野西部所做的事情:P
坚持foreach
并避免使用任何webform控件 - 它简单,高效且非常可行.
foreach
如果你没有特别搞砸某些东西,肯定会更快.Repeater
当然更清洁,更巧妙地分离UI和逻辑.有时您需要更多条件(除了不同的外观偶数和奇数行)来正确渲染您的东西,这是foreach
唯一的选择.
我个人更喜欢Repeater
正常情况和foreach
更复杂的情况.
编辑:我在谈论使用WebControls的普通ASP.NET.对于MVC甚至是主要由代码生成的页面,我同意foreach更简单,更清晰.
归档时间: |
|
查看次数: |
9976 次 |
最近记录: |