這可能是真的愚蠢的,但我實在不明白它...Asp.net-MVC通視圖模型,以局部視圖
因此,這裏的問題。 我有一個模型說A和B模型
class A
{
B b = new B();
}
class B
{
...
}
現在,我有B中的視圖模型(而不是A)。
所以,現在我有一個視圖storngly鍵入A.它調用另一個局部視圖B呈現B的所有屬性。但現在,如何將B的視圖模型傳遞給局部視圖?我可以通過調用Model.b而不是視圖模型來傳遞模型!
這可能是真的愚蠢的,但我實在不明白它...Asp.net-MVC通視圖模型,以局部視圖
因此,這裏的問題。 我有一個模型說A和B模型
class A
{
B b = new B();
}
class B
{
...
}
現在,我有B中的視圖模型(而不是A)。
所以,現在我有一個視圖storngly鍵入A.它調用另一個局部視圖B呈現B的所有屬性。但現在,如何將B的視圖模型傳遞給局部視圖?我可以通過調用Model.b而不是視圖模型來傳遞模型!
將B類作爲屬性包含在A類中。因此,現在可以使用B類作爲Model.bModel
。
class A
{
public B bModel { get; set; }
}
class B
{
}
您需要擴展您的一個ViewModel,以便它包含您想要訪問的所有內容。然後根據您是否處於正常或局部視圖,只需訪問它的不同組件。
您可以通過ViewBag傳遞B.在控制器添加
ViewBag.dataB = B;
然後你就可以渲染模型的局部視圖使用
@Html.Partial("PartialName", ViewBag.dataB)
或者你可以添加一個getter屬性來訪問B和使用渲染部分。
簡單的答案是否定的?我會拋出異常。 – Satpal
@Satpal但那該怎麼辦?我必須使用視圖模型。 – Aditi
只需將'B'模型映射到'ViewModel'。您必須已經定義了映射器或轉換器嘗試使用它。在'B'模型中定義了一個將'ViewModel'轉換並返回給你的方法,並且你可以傳遞'ViewModel'。 – Satpal