MVC 5 - 不显示数据的局部视图

时间:2014-10-17 13:11:01

标签: c# model-view-controller partial-views

我有一个公司模型,如下所示。

公司模型有一个IQueryable的EmailHistory(这是另一个模型)。

public int Id { get; set; }
public string CompanyName { get; set; }
public IQueryable<IEmailHistory> EmailHistory { get; set; }

在我的公司控制器中,我获取了公司详细信息并获取了我的所有电子邮件历史记录,因此这是我的控制器。

//Go to the repository and the company record
var companyRecord = TheRepository.GetCompany(transaction.CompanyId, User.Identity.GetUserId());

//Get the emails for this company
companyRecord.EmailHistory = TheRepository.GetEmailHistoryByCompany(User.Identity.GetUserId(),
            Id);

如果我在控制器中展开结果,我可以看到该公司的电子邮件....到目前为止一切正常。

我的公司页面包含电子邮件历史记录的部分视图。

@ Html.Partial("~/Views/EmailHistory/_EmailHistories.cshtml", Model.EmailHistory);

部分看起来像这样:

@model List<AutoSend.Model.IEmailHistory>

<table class="table">
    <thead>
        <tr>
            <th style="width:100px" class="text-left">To</th>
            <th style="width:60px" class="text-left">Sent Date</th>
            <th style="width:60px" class="text-left">OutCome</th>
            <th style="width:60px" class="text-left">Delivered Date</th>
            <th style="width:60px" class="text-left">Opened Date</th>       
        </tr>
    </thead>
    <tbody>
        @foreach (var emailHistory in Model)
        {
            <tr>
            <td class="text-left">@Html.Display(emailHistory.EmailAddress)</td>
            <td class="text-left">@Html.Display(emailHistory.SentDate.ToShortDateString())</td>
            <td class="text-left">@Html.Display(emailHistory.OutCome)</td>
            <td class="text-left">@Html.Display(emailHistory.EmailDeliveredDate.ToShortDateString())</td>
            <td class="text-left">@Html.Display(emailHistory.EmailOpened.ToShortDateString())            </td>
            </tr>
        }
    </tbody>
</table>

如果我单步执行此操作,我可以看到我们循环浏览电子邮件历史记录(并且可以看到值),但是.....页面实际上从未实际呈现数据(尽管相关的td&#39; s呈现)

我可以看到表格标题和行,但没有显示任何记录!?

1 个答案:

答案 0 :(得分:1)

如果没有辅助方法在tds中渲染数据怎么样.....如@emailhistory。[yourprop] ....