2012-06-21 95 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

我不知道为什么没有在第一时间加载,但你也可以尝试使用'包含()'以急切加载这些关系。 –