0

アセット名、ウォーターボディ名、郡名を表示する部分ビューを作成しました。部分ビューはアセットモデルに基づいています。Assets / Detailにいる場合、(Assetモデルで機能している)詳細ビューは次のようにパーシャルをロードします。
@Html.Partial("Summary", Model)

すべてが順調で、3つのフィールドすべてがロードされます。

AccessInspectionモデルで動作するAccessInspections/Editを使用している場合、パーシャルは次のようにロードされます。
@Html.Partial("Summary", Model.Asset)

ただし、AccessInspection.Asset.Waterbody.NameとAccessInspection.Asset.County.Nameは読み込まれません。(私はAsset.Name値を取得します。)

モデルは次のように関連しています。

Asset
.AssetType(Single)
.LandLocation(Single)
..Waterbody(Single)
... ID
... Name
..County
... ID
... County
.AccessInspections(Collection)

これは遅延読み込みに関係していると思います。関連データを強制的に通過させるにはどうすればよいですか?

4

1 に答える 1

0

いくつかのことを整理した後、これが私がしなければならなかったことです。
Assets では、Summary (Views\Assets フォルダーに戻されます) をそのまま使用し、次のようにモデルを渡します。
@Html.Partial("Summary", Model)

Views\AccessInspections では、パーシャルに対して @Html.Action を呼び出す必要がありましたが、コントローラーは return PartialView(asset) を指定してパーシャルとして正しく解析する必要がありました。次のように呼び出すことができます。
@Html.Action("Summary", "Assets", new { id = Model.Asset.Id })

コントローラーのコードは次のようになります。

public ActionResult Summary(int id = 0)
{  
    Asset asset = db.Assets.Find(id);  
    if (asset == null)  
    {  
        return HttpNotFound();  
    }  
    return PartialView(asset);  
}
于 2012-06-21T15:50:03.020 に答える