我一般都是ASP.NET MVC和.NET的新手,所以只是提出了一个简单的问题。我想在网页上显示一个对象列表,最好的方法是什么?
目前的模型如下:
public class NoticeBoard
{
public List<Notice> Notices;
public NoticeBoard()
{
Notices = new List<Notice>();
}
}
public class Notice
{
public int ID;
public DateTime StartDate;
public DateTime EndDate;
public String Content;
}
非常简单,控制器创建一个包含通知列表的NoticeBoard对象,View需要显示通知。
我看到有像GridView,DataList,DetailsView,ListView这样的控件。他们之间的区别是什么,哪一个最适合这种情况?
答案 0 :(得分:2)
您列出的所有控件都不适合MVC。这些都是ASP.Net WebControls,用于“经典的ASP.Net”webforms应用程序。它们依赖于ViewState和其他页面生命周期机制才能正常运行,并且通常不适用于MVC项目。
如果您正在使用ASP.Net MVC,那么您将使用更多原始格式处理HTML,而不是使用webcontrol。要生成项目列表,请将以下代码添加到您的视图中:
<% foreach(var notice in Model.Notices) { %>
<tr>
<td><%= notice.StartDate.ToString() %></td>
<td><%= notice.EndDate.ToString() %></td>
<td><%= notice.Content %></td>
</tr>
<% } %>
如果您发现在视图中一遍又一遍地使用相同的代码生成HTML,请考虑将其编写为HtmlHelper扩展方法。