2011-01-02 12 views
1

コンテキストに基づいていくつかの部分ビューで構成された複数のビューがあります。コンテキストに基づいてASP MVCビューを動的に作成

たとえば、スカラ値、名前など、さらに割り当てられたすべての従業員、タスク、および/またはクライアントを含む、プロジェクトのすべての詳細を表示するプロジェクトビューがあります。

問題は、特定のタイプのプロジェクトには上記のセクションがすべて含まれているのに対して、他のタイプのセクションにはセクションが2つしかない、つまりセクションにさえあるということです。詳細のみ。

プロジェクトマスタービューを作成する最も良い方法は何ですか?私はビューでプロジェクトをチェックするロジックを持つことを望んでいません。関連する部分部分をプログラム的にレンダリングし、残りの部分を無視することによって、コード内のビューを構成する方法はありますか?

それ以外の方法でこれを保守可能な方法で行う方法はありますか?私はもちろん、if文を使って部分的なものをレンダリングするだけで、それが適用されるかどうかを確認できますが、ビューには非常に重要なロジックが含まれています。別の状況では、このメソッドを使用して、ユーザーが持つサブスクリプションのタイプに基づいてコンテンツを表示したいと考えています。

ありがとうございます!

答えて

1

私はifのアプローチに固執します。ビューに重要なロジックをコーディング回避するために、あなたのビューモデルでプロパティを定義し、ビュー内だけ持っているように、コントローラは値を設定してみましょう:

<% if (Model.HasDetails) { %> 
    <% Html.RenderPartial("details"); %> 
<% } %> 

それとも、あなたは、単に可能性の表示/編集用テンプレートを使用している場合:

<%= Html.DisplayFor(x => x.Details) %> 
関連する問題