次の問題に直面しました。私たちはシステムのためのログイン後のページのセットを開発しました。ユーザーは、フリーユーザータイプ1、プレミアムユーザータイプ1、フリーユーザータイプ2、プレミアムユーザータイプ2、および管理者の5つの役割のいずれかを持つことができます。 問題は、これらのロールのすべてのページがほぼ同じに見えるはずですが、ユーザーロールによっては少し異なります(たとえば、リンクが異なるURLを指している、またはボタンがクリックされたときに別のモーダルが表示され、一部のオプションが表示され、一部は非表示になります)。 私たちがやろうとしているのは、すべてを小さな部分的なビューで包み込み、ユーザーの役割に応じて異なる部分的なビューをレンダリングすることです。しかし、それはますます複雑になります。 この問題に対処するためのデザインパターンや一般的なアプローチがありますか? ありがとう!ASP.NET MVC。ユーザーロールに基づいてRazorビューを生成する
-1
A
答えて
0
あなたの説明に基づいていますが、100%明確ではないというのは、さまざまな役割に対して異なる部分的なビューを作成するのが最善の方法だと思われます。
次に、ログイン時にDBからユーザーロールを取得し、そのロールに基づいてさまざまな部分ビューを返します。
パーシャルビューが複数ある場合(ユーザーロールごとに複数のページがある場合)、ユーザーロールをセッションまたはCookieに追加して、再度DBにヒットする必要はありません。
この場合、Cookieのアプローチを使用することをおすすめします。
設定されたセッション
var userRole = 1;
Session["UserRole"] = userRole;
セッションを取得:
var userRole = Session["UserRole"] as int?;
セットクッキー
var cookie = new HttpCookie("UserRole");
cookie.Value = GetUserRole();
cookie.Expires = DateTime.Now.AddDays(1);
HttpContext.Current.Response.Cookies.Add(cookie);
(あなたは[カスタムかみそりビューエンジン]を実装することができクッキー
if (HttpContext.Current.Request.Cookies["UserRole"] != null)
{
var userRole = HttpContext.Current.Request.Cookies["UserRole"].Value);
}
関連する問題
- 1. ASP.NET MVC load Razorビューfromデータベース
- 2. ASP.NET MVCのモデルに基づいてビューのフィールドを更新
- 3. コンテキストに基づいてASP MVCビューを動的に作成
- 4. mvc asp.netのログインユーザーに基づいてビューを切り替える方法
- 5. ASP.Net MVC認証 - ロールに基づいてビューの要素を隠す
- 6. ASP.NET MVCビューのデータをデバッグ/リリースモードに基づいて変更します
- 7. ASP.NET MVC 4 Razorプロジェクトのビューにコレクションを表示するには?
- 8. ユーザーロールに基づいてWPF GUIを操作する方法
- 9. ユーザーロールに基づいてswaggerでapiを一覧表示する
- 10. Oracleビューを別のビューに基づいて作成する
- 11. MVC 5&Jquery DataTablesユーザーロールに基づく列の表示
- 12. MVC ASP.NET or Razor
- 13. ASP.NET MVC Razorコンテンツプレースホルダー
- 14. TimePicker Razor ASP.NET-MVC
- 15. 部分ビューのアクションに基づくASP.NET MVC Readonlyフィールド
- 16. Asp.Net MVC - クリックしたノードに基づいてツリービューを作成する
- 17. asp.net MVCかみそりビューは - フォームコントロールの値に基づいてリダイレクト
- 18. PDFTron XODビューアがASP.NET Core MVC 6 Razorビューにロードされない
- 19. asp.net mvc 3と動的ビュー生成
- 20. asp.net-mvc基準に基づいて新しいページにリダイレクトする
- 21. ユーザーロールに基づいてコンテンツを動的に表示
- 22. ビュー内のリストを更新するAsp.net mvc razor
- 23. ASP.NET MVC 5 URLは、私はASP.NETに基づいてVS13 MVC 5で作成したページを持って選択
- 24. cultureに基づいてASP.NET MVCマスターページを変更します。
- 25. ビュー内にサブドメインURLを生成するASP.NET MVC
- 26. ユーザーロールに基づくDeserialise JSONフィールド
- 27. ユーザーロールに基づく動的テンプレートURL
- 28. asp.net mvcの配列に基づいてアクションメソッドを動的に作成
- 29. asp.net mvc razorのコードエディタ
- 30. ASP.NET MVC RazorオブジェクトHtmlAttributes
を取得http://stackoverflow.com/questions/9838766/how-do-i-implement-a-custom-razorviewengine-to-find -views-in-non-standard-locati)を参照してください。これには、ユーザー切り替えロジックが含まれている可能性があります。 – Liam