Asp.net-mvc将ViewModel传递给局部视图

时间:2013-07-16 10:46:29

标签: c# asp.net-mvc asp.net-mvc-partialview asp.net-mvc-viewmodel

这可能真的很愚蠢,但我无法弄清楚......

所以这就是问题所在。 我有一个模型说A和模型B。

class A
{
    B b = new B();
}

class B
{
    ...
}

现在,我有一个B的ViewModel(但不是A)。

所以,现在我有一个storngly键入A的视图。它调用另一个局部视图B来渲染B的所有属性。但现在,如何将B的viewmodel传递给局部视图?我可以通过调用Model.b而不是viewmodel来传递模型!

3 个答案:

答案 0 :(得分:1)

将B类作为A类中的属性包含在内。现在您可以将B类用作Model.bModel

class A
{
    public B bModel { get; set; }
}

class B
{

}

答案 1 :(得分:1)

您需要扩展一个ViewModel,使其包含您要访问的所有内容。然后只需访问它的不同组件,具体取决于您是在普通视图还是部分视图中。

答案 2 :(得分:1)

您可以通过ViewBag传递B.在控制器中添加

ViewBag.dataB = B;

然后,您可以使用

渲染模型的局部视图
@Html.Partial("PartialName", ViewBag.dataB)

或者您可以添加getter属性来访问B并使用它来渲染部分。

相关问题