2

さて、私は業界エンティティと多対1またはゼロの関係を持つコースエンティティを持っています。これは、分類の目的で、コースに業界を指定するかどうかを指定できることを意味します。EFを使用してすべてのエンティティとモデルを作成したため、Courseエンティティに保存されているリンクはIndustryIdのみです。

コントローラの作成時に作成されるデフォルトのビューには、IndustryIdが表示されます。

私が今やろうとしているのは、代わりに、IndustryエンティティのプロパティであるDescriptionを表示することです。これが私のコードです:

@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オブジェクトがクエリに入力されていないため、nullであるということです。Include("Industry")関連するエンティティを熱心にロードするには、モデルまたはコントローラーに入力するLINQクエリに追加する必要があります。

于 2013-03-08T18:16:41.873 に答える