2011-01-13 129 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> 

<%}%>