3

这可能真的很愚蠢,但我就是想不通......

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

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

class B
{
    ...
}

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

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

4

3 回答 3

1

您需要扩展您的一个 ViewModel,以便它包含您想要访问的所有内容。然后根据您是在正常视图还是部分视图中访问它的不同组件。

于 2013-07-16T11:01:47.060 回答
1

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

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

class B
{

}
于 2013-07-16T11:01:29.660 回答
1

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

ViewBag.dataB = B;

然后,您可以使用模型渲染局部视图

@Html.Partial("PartialName", ViewBag.dataB)

或者您可以添加一个 getter 属性来访问 B 并使用它呈现部分。

于 2013-07-16T11:05:49.467 回答