1

これが私の質問に適した場所かどうかはわかりませんが、試してみます。

asp.net mvc 3 razor をプレゼンテーション層として使用する新製品の開発を開始しています。アプリケーションには約 7 ~ 8 の異なるロールがあり、すべてのロールにはデータが表示される異なるビューがあります。NHibernate の助けを借りて、いくつかの設計パターンを実装することで、優れたフレームワークを構築したので、アプリケーションのこちら側は簡単に調整してメンテナンスを適用できます。

私は、プレゼンテーション レイヤーをフレームワークと同じくらい適応させたいと考えています。そのため、すべての異なる種類の役割に対してビューをできるだけ少なくする方法を見つけようとしていますが、完全な機能を備えています。役割に基づいてエンドユーザーにビューを配布するために、どのような実装を使用していますか?

jquery テンプレートを使用することも考えましたが、現在のビューの可能性と Razor 構文では、少し不必要に思え、好ましい方法ではありません。

このアプリケーションを開発する際に心に留めておくべき情報は、よくある間違い、ベスト プラクティス、提案などです。

返信をお待ちしております。

4

1 に答える 1

2

ビューの数を減らす1つの方法はIsInRole()、部分的なビューと組み合わせて使用​​することです(または、カスタムの場合は同等のものを使用します)。最も単純なケースでは、特定の役割に基づいてその中の部分的なビューをレンダリングする1つのビューを持つことができます。次のようなもの:

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

状況に応じて、一部のビューを複数の異なるロール間で共有して、重複するコードを減らすことができます。すべてのロールからパブリックにアクセスできるユーザーインターフェイス要素は、ロールチェックなしでビュー自体に配置できます。

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

 <div>
        @if (Context.User.IsInRole("admin"))
        {
            @Html.Partial("_StuffForAdmins")
        }
    </div>
于 2012-04-17T22:19:39.150 に答える