私は、作業中のプロジェクトのための動的なロールベースのナビゲーションソリューションを作成する方法を考え出してきました。ロールベースのナビゲーション
ナビゲーションには、usersロールに関連するリンクのみが表示されます。管理者には、アプリケーションの統計情報の表示、顧客アカウントの管理などのリンクがあります。標準ユーザーは管理するリンク
私は現在、という名前の部分的なビューを持っています。には、ロールチェックのためのいくつかの基本的な条件文と、適切なリンクを表示するためのマークアップの組み合わせがあります。これは動作しますが、すぐに管理できなくなる可能性があります。
ナビゲーション部分図:
@if(User.IsInRole("Admin")) {
<li><a href="#">Statistics</a></li>
<li><a href="#">Accounts</a></li>
<li><a href="#">Dashboard</a></li>
}
@if(User.IsInRole("User")) {
<li><a href="#">Account</a></li>
<li><a href="#">Friends</a></li>
}
// code omitted
は視野の外にこのロジックを取得し、コントローラがこれを処理できるようにする方法はありますか?
あなたのパーシャルは子供のアクションメソッドを使用していますか? –
Daveに感謝します。いいえ、違います。以前は子どもの行動を実際に使っていませんでした。あなたの質問を拡大してもよろしいですか?私はこのシナリオで子どもの行動がどのような役割を果たすのか分かりません。 – mezmi
子どもの行動は素晴らしいです。モデルはあなたを部分的なものに戻すアクションです。それらを 'Action("/Controller/Action/id ")'と呼びます。 idパーツは、作成するnavのハンドルにすることができ、モデルはnavアイテムのリストにすることができます。さらに、あなたの子供の行動は引数なしであなたのユーザーの役割を調べ、適切なナビゲーションバーを返すことができます。以前はロールベースのナビゲーションにこれを使用しました。 –