c# - MVC3、Razor 和 EF5 : Child properties not displayed

标签 c# asp.net-mvc entity-framework razor entity

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

创建 Controller 时创建的默认 View 显示 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 不显示任何内容。有人知道为什么吗?

最佳答案

最可能的原因是您的查询中未填充 Industry 对象,因此为 null。您可能需要将 Industry") 添加到模型或 Controller 中的填充 LINQ 查询中,以预先加载该相关实体。

关于c# - MVC3、Razor 和 EF5 : Child properties not displayed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15300554/

相关文章:

asp.net-mvc - 如何在 MVC 运行时自定义 Display 和 Required 属性

asp.net-mvc - 使用没有魔法字符串的 SelectList

c# - 获取基本 IQueryable 实例的 Count()

c# - 带有 viewModel 的嵌套局部 View

javascript - 使用按钮加载 View 单击新页面 MVC

c# - 垂直滑动模拟鼠标事件发送到 Windows 10 平板电脑上的 Windows 窗体应用程序中的错误控件

c# - EF Core - 自引用实体

c# - 每隔一个 a-z 字母大写/小写,忽略空格

c# - 使用哪种集合类型?

asp.net-mvc - 如何在 ASP.NET MVC 1.0 中实现区域以与 ASP.NET MVC 2.0 最大程度兼容