2012-04-17 31 views
1

これは私の質問のための適切な場所がわからないが、私はそれを試してみるだろう。asp.net mvc 3アプリケーション内のビュー管理を管理する方法

私たちは、プレゼンテーション層としてasp.net mvc 3 razorを使用する新しい製品の開発を開始しています。アプリケーションには約7〜8種類のロールがあり、すべてのロールでデータが表示されるビューが異なります。 NHibernateの助けとカップルのデザインパターンの実装を使って素敵なフレームワークを構築しました。このアプリケーション側は、調整してメンテナンスを簡単に行うことができます。

私はプレゼンテーションレイヤーを自分のフレームワークと同じように適応させたいので、私は可能な限り少ないビューを持つようにしています。自分の役割に基づいてエンドユーザーにビューを配布するためにどのような実装を使用しますか?

私はjqueryテンプレートを使用することを考えましたが、現在のビューとカミソリの構文の可能性があるため、少し不必要で、行き先がないと思われます。あなたの回答を楽しみにしてい

このアプリケーションを開発しながら、私は心に留めておく必要があるすべての情報がいいだろう、考える、一般的なミス、ベストプラクティスや提案など

+0

あなたの質問はただ心に百万の質問を持っているようですか?すべてのnhibernateのことを忘れて、カップルのデザインなどを書いて、正直言ってあなたの質問はコメントやブログの投稿のように思えるので、達成しようとしていることを明確にするために質問を書き直してください – davethecoder

+0

私は主な質問があるべきだと思います。あなたの役割に基づいてエンドユーザーにビューを配布するために使用する実装の種類はありますか?他のものについてのあなたの権利! –

答えて

2

ビューの数を減らす1つの方法は、部分ビューと組み合わせてIsInRole()(または何かカスタムがある場合は同等)を使用することです。最も単純なケースでは、特定のロールに基づいて部分ビューをレンダリングする1つのビューを持つことができます。線に沿って何か:あなたの状況に依存し

@if (HttpContext.Current.User.IsInRole("admin")) { 
    @Html.Partial("_StuffForAdmins") 
} 

、いくつかの部分図は、重複コードを削減する、複数の異なるロール間で共有することができます。すべてのロールによって一般にアクセス可能なユーザーインターフェイス要素は、ロールチェックなしでビュー自体に配置することができます。

EDIT:代替構文は次のとおりです。

<div> 
     @if (Context.User.IsInRole("admin")) 
     { 
      @Html.Partial("_StuffForAdmins") 
     } 
    </div> 
+0

これは私の質問に対する答えかもしれません。私はこれを見て、これを私のプロトタイプの中で実装して、どのように動作するかを見ていきます。あなたの提案をありがとう! –

+0

問題ありません!私はそれが助けて欲しい –

関連する問題