3

This maybe really stupid but I just can't figure it out...

So here is the problem. I have a model say A and a model B.

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

class B
{
    ...
}

Now, I have a ViewModel for B (but not for A).

So, now I have a view storngly typed to A. And it calls another partial view B to render all the properties of B. But now, how to I pass the viewmodel for B to the partial view? I can pass the model by just calling Model.b but not the viewmodel!

4

3 に答える 3

1

クラス B をクラス A のプロパティとして含めます。これで、クラス B を として使用できるようになりましModel.bModelた。

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

class B
{

}
于 2013-07-16T11:01:29.660 に答える
1

アクセスしたいものすべてが含まれるように、1 つの ViewModel を拡張する必要があります。次に、通常のビューか部分的なビューかに応じて、さまざまなコンポーネントにアクセスします。

于 2013-07-16T11:01:47.060 に答える
1

ViewBag を介して B を渡すことができます。コントローラーで追加

ViewBag.dataB = B;

次に、使用してモデルで部分ビューをレンダリングできます

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

または、getter プロパティを追加して B にアクセスし、それを使用してパーシャルをレンダリングすることもできます。

于 2013-07-16T11:05:49.467 に答える