2012-06-21 148 views
0

我創建了一個局部視圖,其中顯示資產名稱,Waterbody名稱和縣名。部分視圖基於資產模型。如果我在資產/詳細信息很的細節視圖(這正與資產模型)加載部分是這樣的:
@Html.Partial("Summary", Model)MVC3/4部分視圖強制延遲加載關係加載

一切都很好,所有三個字段負載。

如果我在AccessInspections /編輯與部分裝載這樣的AccessInspection樣板工程:
@Html.Partial("Summary", Model.Asset)

然而,AccessInspection.Asset.Waterbody.Name和AccessInspection.Asset.County。名稱不加載。 (我得到了Asset.Name值。)

這些模型的關係如下:

資產
.AssetType(單人間)
.LandLocation(單人間)
..Waterbody(單人間)
... ID
...名稱
..County
... ID
......縣
.AccessInspections(系列)

我猜這與Lazy Loading有關。我如何強制相關數據通過?

回答

0

在整理完一些東西之後,下面是我必須做的。
的資產,我可以使用摘要(移回視圖\資產文件夾)就是通過在模型中,像這樣:
@Html.Partial("Summary", Model)

在瀏覽\ AccessInspections我不得不呼籲的@ Html.Action部分,但控制器必須指定返回PartialView(資產)才能將其正確分析爲部分。我可以這樣調用:
@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); 
} 
+0

我不知道爲什麼沒有在第一時間加載,但你也可以嘗試使用'包含()'以急切加載這些關係。 –