2

好的,所以我有一个 Course 实体,它与 Industry 实体具有多对一或零关系。这意味着出于分类目的,课程可以指定或不指定行业。我通过 EF 创建了所有实体和模型,因此存储在 Course 实体中的唯一链接是 IndustryId。

创建控制器时创建的默认视图显示 IndustryId。

我现在要做的是显示描述,这是行业实体的属性。这是我的代码:

@foreach (var item in Model)
{
    <tr>
        <td><a href="@Url.Action("Details","Course", new { id=item.Id })"><img class="media-object" data-src="holder.js/64x64" /></a></td>
        <td>@Html.DisplayFor(modelItem => item.Name)</td>
        <td>@Html.DisplayFor(modelItem => item.Description)</td>
        <td>@Html.DisplayFor(modelItem => item.Industry.Description)</td>
        <td>@Html.DisplayFor(modelItem => item.Author)</td>
        <td>
            <a href="@Url.Action("Edit","Course", new { id=item.Id })"><i class="icon-edit"></i> Modify</a>
            <a href="@Url.Action("Delete","Course", new { id=item.Id })"><i class="icon-trash"></i> Delete</a>
        </td>
    </tr>
}

现在的问题是@Html.DisplayFor(modelItem => item.Industry.Description 行什么也不显示。有谁知道为什么?

4

1 回答 1

3

最可能的原因是您的查询中没有填充 Industry 对象,因此为空。您可能需要Include("Industry")在模型或控制器中添加填充的 LINQ 查询以预先加载该相关实体。

于 2013-03-08T18:16:41.873 回答