如何在ASP.NET MVC中显示表中的对象列表?

时间:2010-01-29 06:18:11

标签: asp.net list object

我一般都是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这样的控件。他们之间的区别是什么,哪一个最适合这种情况?

1 个答案:

答案 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扩展方法。

相关问题