2011-01-13 147 views
0

我有一個名爲ComplaintModel模型:沒有顯示MVC顯示模板

public class ComplaintModel 
{ 
    private Data.MTAEntities db = new MTAEntities(); 
    public IEnumerable<Complaint> Complaints { get; set; } 
    public void GetAllComplaints() 
    { 
     var complaints = (from c in db.tbComplaints 
          orderby c.CreateDateTime descending 
          select 
           new Complaint() 
            { 
             Comment = c.Complaint, 
             ComplaintID = c.ComplaintID, 
             CreateDateTime = c.CreateDateTime 
            }); 

     Complaints = complaints; 
    } 

在我的索引頁,我有以下代碼:

<% Html.DisplayFor(m => Model.Complaints, "Complaint"); %> 

我幾乎路過一個IEnumerable對象將我的顯示模板。在我的顯示模板:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<MTA.Models.Entities.Complaint>>" %> 
<%@ Import Namespace="MTA.Models.Entities" %> 
<% foreach (Complaint complaint in Model) 
    { 
%> 
<div id="complaint"> 
    <%:complaint.Comment%> 
</div> 

<% 
    }%> 

我肯定有我的集合中的一個投訴類,由於某種原因,它沒有顯示。我錯過了什麼嗎?我也沒有得到任何錯誤,這使得我很難弄清楚我做錯了什麼。只有我能想到它在它到達我的顯示模板之前丟失了嗎?

謝謝!

EDITS:

到用戶控件的確切路徑是:〜/查看/主頁/ DisplayTemplates/Complaint.ascx

控制器方法調用:

public ActionResult Index() 
{ 
    var model = new MTA.Models.ComplaintModel(); 
    model.GetAllComplaints(); 
    ViewData["model"] = model; 
    return View(model); 
} 
+0

「Complaint.ascx」的確切路徑是什麼? – hunter 2011-01-13 21:00:59

回答

0

這個怎麼樣? (改爲使用ComplaintModel)

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MTA.Models.Entities.ComplaintModel>" %> 
<%@ Import Namespace="MTA.Models.Entities" %> 
<% foreach (Complaint complaint in Model.Complaints) 
{ 
%> 
<div id="complaint"> 
    <%:complaint.Comment%> 
</div> 

<%}%>