MVC显示模板未显示

时间:2011-01-13 20:59:05

标签: .net asp.net-mvc

我有一个名为ComplaintModel的模型:

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>

<%
   }%>

我的收藏中肯定有一个投诉类,由于某种原因它没有显示。我错过了什么吗?我也没有得到任何错误,这使我更难弄清楚我做错了什么。我能想到它在以某种方式进入我的显示模板之前就已经丢失了吗?

谢谢!

编辑:

用户控件的确切路径是:〜/ Views / Home / DisplayTemplates / Complaint.ascx

控制器方法调用:

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

1 个答案:

答案 0 :(得分: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>

 <%}%>