gpt4 book ai didi

c# - foreach 或 Repeater - 哪个更好?

转载 作者:可可西里 更新时间:2023-11-01 08:37:31 28 4
gpt4 key购买 nike

我正在使用 MVC 在 ASP.Net 中构建一个网站,并且需要列出一组结果。以下两项都按照我的意愿工作,但我想知道哪个更快、更清洁和/或更好 - 或者是否完全是另一种选择更合适?

备注:ViewData.Model类型为 IEnumerable<Thing>我需要显示比 Name 更多的属性- 我已经裁剪了这个例子的代码。


<% foreach (var thing in ViewData.Model)
{ %>
<p><%= thing.Name %></p>
<% }; %>

<% rptThings.DataSource = ViewData.Model;
rptThings.DataBind(); %>
<asp:Repeater ID="rptThings" runat="server">
<ItemTemplate>
<p><%# DataBinder.Eval(Container.DataItem, "Name") %></p>
</ItemTemplate>
</asp:Repeater>

最佳答案

foreach是 ASP.NET MVC 的方法。为什么?我个人避免任何遗留问题asp:xxx控件 .. 因为它们可能存在与 webforms 模型一起存在的膨胀。其次,所有 event delegates 呢?你必须接线吗?你开始混合和匹配架构,IMO,所以这可能会严重导致真正的意大利面条代码和疯狂的维护和支持问题。 (IMO:DataBinder.Eval == 非常邪恶 :( :( :( )

唯一asp:xxx我使用的控件是 mastpage / content control (因为没有其他选择)。

最后,做 foreach正如许多人认为的那样,在 asp.net mvc 中并不是 spagetti 代码。我知道当我第一次看到最初的 mvc 演示时我就这么做了。如果有的话,它实际上使 UI 比以前更干净,imo .. 更易于维护。 IMO,意大利面条代码是当你有很多 <% .. %>做业务逻辑和 ui 逻辑和 (gag) 数据库访问。请记住,这就是 peeps 在 asp.net classic 的狂野西部所做的事情:P

总结

坚持 foreach并避免使用任何网络表单控件 - 它简单、高效且非常可行。

关于c# - foreach 或 Repeater - 哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/347472/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com