我在WebForms中如何像在ASP.NET MVC中一样遍历数据?例如,在MVC中,这就像:
<table>
@foreach (var myItem in g)
{
@<tr><td>@MyItem.title<td></tr>
}
</table>
代码的背后会是什么样子呢?
或者,我是否可以将MVC项目添加到WebForms应用程序中,以便我可以使用MVC功能呢?
我在WebForms中如何像在ASP.NET MVC中一样遍历数据?例如,在MVC中,这就像:
<table>
@foreach (var myItem in g)
{
@<tr><td>@MyItem.title<td></tr>
}
</table>
代码的背后会是什么样子呢?
或者,我是否可以将MVC项目添加到WebForms应用程序中,以便我可以使用MVC功能呢?
与其使用中继器,您可以通过类似MVC的方式使用<% %>
和<%= %>
标签循环遍历列表。
<table>
<% foreach (var myItem in g) { %>
<tr><td><%= myItem.title %></td></tr>
<% } %>
</table>
只要您正在循环遍历的属性可以从aspx/ascx页面访问(例如声明为protected或public),您就可以循环遍历它。代码后台中没有其他代码是必需的。
<% %>
将评估该代码,而<%= %>
将输出结果。public List<string> Sites = new List<string> { "StackOverflow", "Super User", "Meta SO" };
那只是一个简单的字符串列表,因此在您的aspx文件中
<% foreach (var site in Sites) { %> <!-- loop through the list -->
<div>
<%= site %> <!-- write out the name of the site -->
</div>
<% } %> <!--End the for loop -->
<asp:Repeater id="cdcatalog" runat="server">
<ItemTemplate>
<td><%# Eval("title")%></td>
</ItemTemplate>
</asp:Repeater>
在代码后台:cdcatalog.DataSource = yourData;
cdcatalog.DataBind();
SqlDataSource
、EntityDataSource
、ObjectDataSource
)对象与Repeater
一起使用:
....
<asp:Repeater id="someRep" runat="server" DataSourceID="YourDataSource">
<ItemTemplate>
<tr>
<td><%# Eval("PropertyName") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
...