在处理1 ---> 0 ... 1关系时,我试图为0 ... 1端使用单独的局部视图。为了提高效率,我想使用RenderPartial()而不是RenderAction()。ASP.NET MVC2 - 是否可以从部分视图访问父视图的模型数据?
是否可以从这个局部视图访问包含视图的模型数据,以便访问主对象的PK/ID?
难道这只是一个令人伤心的尝试,甚至不应该被认为是第一位?
有没有人有更好的例子如何处理这个1 ---> 0 ... 1使用MVC的关系?
在处理1 ---> 0 ... 1关系时,我试图为0 ... 1端使用单独的局部视图。为了提高效率,我想使用RenderPartial()而不是RenderAction()。ASP.NET MVC2 - 是否可以从部分视图访问父视图的模型数据?
是否可以从这个局部视图访问包含视图的模型数据,以便访问主对象的PK/ID?
难道这只是一个令人伤心的尝试,甚至不应该被认为是第一位?
有没有人有更好的例子如何处理这个1 ---> 0 ... 1使用MVC的关系?
整理。
如果您未将模型传递到RenderPartial
,则默认传递父视图。所以你可以通过部分的Model
属性来访问它。
但是,如果您确实传递了一个模型,那么不会,部分无法看到父级的模型,因为它会看到它自己的模型。
难道这只是一个不应该被认为是首当其冲的恶作剧吗?
我会说“kludge”而不是“黑客”,但是可能。 :)
首先问你为什么需要PK?
但是,如果我真的需要它,我会在子模型中有一个ParentID属性。然后在发送之前将其设置好。
foreach(var vChild in Model.Children)
{
vChild.ParentID = Model.ID;
Html.RenderPartial(ViewName, vChild)
}
如果您需要来自父级的所有数据,那么您可以拥有父级属性,并设置整个属性。
这个逻辑会更适合于在模型本身却是这样的:
List<Children> mChildren;
public void AddChild(Child tChild)
{
tChild.ParentID = this.ID;
mChildren.Add(tChild);
}
或类似的东西。这将取决于事情是如何建立起来的,但这是总体思路。
是否很难将Id传递给局部视图? – 2010-09-24 18:00:04
部分视图需要类型(0 ... 1端)的模型,该模型只包含指向父端的导航属性。 – asfsadf 2010-09-24 18:36:19