2011-04-07 6 views
0

ビューモデルを使用してコントローラからデータを取り込むMVC3ビューがあります。 Viewmodelは、リポジトリのpopulateメソッドを使用して初期化されています。今私は部分的なビューを作成し、いくつかのセクションを隠したいと思っています。ビューモデルにデータを取り込むために別のメソッドを作成する必要がありますか?ビューモデーラをうまく解消する必要がありますか?お勧めしますパーシャルビューにデータを入力する

答えて

2

あなた自身のビューモデルは、それ自身がそれぞれのセクションにバインドされる他のビューモデルを表す異なる複雑なプロパティを持つことができます。また、セクションを表示する必要があるかどうかを示すブール値のプロパティを含めることもできます。例:

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

か:

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

viewmodelはどうですか?どのようにして主要なビューモデルをパーツに分割して、パーツを部分ビューに入れることができるようにするか – DotnetSparrow

+0

@DotnetSparrow、ビューモデルの各プロパティは、対応する部分ビューが強く型付けされる別のビューモデルを表すことができます。このサブビューモデルには、この部分ビューに必要なすべてのプロパティが含まれます。 –

1

ありますが、一部のビューをサポートするために、新しいのviewmodelまたはリポジトリメソッドを定義するを持っている言い何も。シナリオの詳細に基づいて、これが価値があるかどうかを判断する必要があります。

長期的なメンテナンスでは物事を壊す方が良いかもしれませんが、それは純粋にあなたが設計する選択肢です。

リポジトリの仕組みによっては、データのサブセットのみを取得する必要がある場合はパフォーマンスが向上することもありますが、単一のページを表示するために複数のリポジトリを呼び出す場合のパフォーマンス上のペナルティを上回る可能性があります。

関連する問題