2010-01-29 103 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

相關問題