2010-01-29 101 views
1

我一般都是ASP.NET MVC和.NET的新手,所以刚刚有一个简单的问题。我想在网页上显示一个对象列表,最好的方法是什么?如何在ASP.NET MVC中显示表中的对象列表?

的车型至今如下:

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; 
} 

所以真正的简单,控制器创建包含通知列表的告示栏对象,并在视图需要显示的告示。

我看到有像GridView,DataList,DetailsView,ListView控件。他们之间有什么区别,哪一个最适合这种情况?

回答

2

您列出的控件都不适用于MVC。这些都是ASP.Net WebControls,用于与“经典ASP.Net”webforms应用程序一起使用。他们依赖于ViewState和其他页面生命周期机制来正常工作,并且通常不会与MVC项目一起工作。

如果您使用的是ASP.Net MVC,那么您更多是使用原始形式处理HTML,而不是使用webcontrols。要生成项目列表,像这样的代码添加到您的视图:

<% foreach(var notice in Model.Notices) { %> 

    <tr> 
    <td><%= notice.StartDate.ToString() %></td> 
    <td><%= notice.EndDate.ToString() %></td> 
    <td><%= notice.Content %></td> 
    </tr> 

<% } %> 

如果你发现你正在使用相同的代码一遍又一遍地在你的视图,从而生成HTML,考虑写它作为一个的HtmlHelper扩展方法。

+1

我推荐<%= Html.Encode(notice.Content)%>,以正确显示角括号等内容并避免脚本注入 – 2010-01-29 07:25:42