2011-04-07 97 views
0

我有一個MVC3視圖,正在從控制器使用視圖模型填充。 Viewmodel在存儲庫中使用填充方法進行了inistial化/填充。現在我想創建部分視圖並且想要隱藏少量部分。我是否需要創建不同的方法來填充視圖模型,我需要打破viewmodela?請建議填充部分視圖

回答

2

您可以讓您的視圖模型具有不同的複雜屬性,這些屬性本身代表將綁定到相應部分的其他視圖模型。您還可能包含布爾屬性,指示這些部分是否需要可見。有

@if (Model.ShouldShowFooSection) 
{ 
    @Html.Partial("_Foo", Model.Foo) 
} 
+0

viewmodel呢?我如何將主視圖模型分解爲多個部分,以便earch部分可以填充局部視圖 – DotnetSparrow 2011-04-07 14:22:34

+0

@DotnetSparrow,視圖模型的每個屬性都可以表示相應局部視圖將被強制鍵入的另一個視圖模型。此子視圖模型將包含此部分視圖所需的所有必要屬性。 – 2011-04-07 14:24:47

1

沒什麼可說的,你以支持局部視圖來定義一個新的視圖模型或方法庫:例:

@if (Model.ShouldShowFooSection) 
{ 
    @Html.DisplayFor(x => x.Foo) 
} 

或。根據場景的細節,您必須決定是否值得。

長期維護可能會更好,但是這純粹是您設計的選擇。

根據存儲庫的工作方式,如果您只需檢索數據子集,性能可能會有所提高 - 但這可能會因爲多個存儲庫調用渲染單個頁面而導致性能損失超過。