MVC3のデフォルトインストールでは、Webサイトのタブが左上に作成されます。現在のユーザーがインデックスViewResultにアクセスできるかどうかに基づいて、これらのタブを表示/非表示したいと考えています。 ViewResultに対する許可されるロールは、属性によって定義されます。 ViewResultのロールのリストを取得する方法はありますか?MVC3の属性で定義されたロールに基づいてタブを非表示にする方法は?
答えて
あなたが求めている場合は(申し訳ありませんが、私には丁度明確ではありませんでした)役割に基づいてHTML要素の条件付き上映について、あなたはがはこのような何かを行うことができます:それはされていない場合
@if (User.IsInRole("Administrators"))
{
@Html.ActionLink("Do Some Action", "DoAction", "SomeController")
}
をあなたが求めていることは、私に知らせてください。
あなたのコメントに基づいてフォローアップ:
あなたの質問は私に興味、私は周りに少し突きをしたとヴィヴィアン・シュヴァリエは、基本的にあなたがそうのような何かを書くことができます面白いアイデアhereを持っていることがわかりました:
あなたのビューで@Html.ActionLinkAuthorized("The Privilege Zone", "ThePrivilegeZone", "Home", true)
と、これはコントローラのアクションをチェックして、リンクをレンダリングするかしませんか。彼のコントローラの例では
は、次のようなアクションを持っている:
[Authorize(Roles = "Administrator")]
public ActionResult ThePrivilegeZone()
{
return View();
}
(私はここでのキーポイントは、あなたのビューは、「管理者」についてスクワット知らないということで、拡張子に依存していると思いますここに重い物を持ち上げるを行うコード:
public static MvcHtmlString ActionLinkAuthorized(
this HtmlHelper htmlHelper,
string linkText, string actionName, string controllerName,
RouteValueDictionary routeValues,
IDictionary<string, object> htmlAttributes, bool showActionLinkAsDisabled)
{
if (htmlHelper.ActionAuthorized(actionName, controllerName))
{
return htmlHelper.ActionLink(
linkText,
actionName, controllerName, routeValues, htmlAttributes);
}
else
{
if (showActionLinkAsDisabled)
{
TagBuilder tagBuilder = new TagBuilder("span");
tagBuilder.InnerHtml = linkText;
return MvcHtmlString.Create(tagBuilder.ToString());
}
else
{
return MvcHtmlString.Empty;
}
}
}
のではなく、カット/あなたはそれを見て、彼はそのために持っているサンプルアプリケーションを参照することができ、ここでそのすべてのコードを貼り付け、私はこれまで特に興味深い何だと思います。アプローチは、ビューははそのPrivilegeZoneリンクを表示しますが、それがそうであるかどうかを他のものが判断することだけを知っています。したがって、「管理者」または「所有者」であったユーザーだけがリンクにアクセスできるようにするという新しい要件があると仮定すると、コントローラの動作を変更してビューコードに触れないようにすることができます。興味深い考え、少なくとも私に。
- 1. data- *属性に基づいて要素を表示/非表示にする
- 2. エリキシルに属性に基づいて関数を定義する方法は?
- 3. ユーザーロールに基づいてJavaのタブを非表示にする方法
- 4. MVCのロールに基づいてテーブル内のカラムを非表示
- 5. ユーザーの選択に基づいてオブジェクト属性を表示する方法は?
- 6. ロールに基づくリンクを非表示にする
- 7. ユーザー/ロールの偽装に基づいて色相の各ハイブデータベースを非表示/表示する方法
- 8. 子属性に基づいて親属性を設定する方法
- 9. src 301リダイレクトURL属性に基づいてイメージを非表示にする方法は?
- 10. JSONデータの許可に基づいてタブを非表示
- 11. 複数の属性と複数の属性値に基づいて要素を表示/非表示するにはどうすればよいですか?
- 12. Swagger + Springセキュリティ - ロールに基づいたメソッドを非表示にする
- 13. フォームの値に基づいて可視性を表示/非表示にする
- 14. 列名の属性に基づいてSELECTする方法は?
- 15. ユーザーの所在地に基づいてFacebookのタブを非表示にする
- 16. タイトルに基づくタブを非表示にする
- 17. 現在のタブを非表示にし、hrefに基づいて次のタブを表示しますか?
- 18. Ionic2 - コントローラの表示方法に基づいて表示/非表示ボタン
- 19. 条件に基づいてグリッドビューの列を非表示にする方法は?
- 20. 言語選択に基づいてタブを非表示にする
- 21. URLに基づいてデフォルトのjQueryタブを定義する
- 22. JavaScriptを使用してテキストボックスに基づいてドロップダウンを表示または非表示にする方法
- 23. iphoneでどのようにユーザーのロールに基づいて異なるタブを表示する
- 24. コンボボックス内の選択に基づいてGSPのフィールドを表示または非表示にする方法
- 25. ドロップダウンフォーム要素で選択されている特定のオプションに基づいてセルを表示/非表示にする方法はありますか?
- 26. ロールに基づいてコマンド列の一部を表示
- 27. 設定に基づいて指定されたプロパティのみを表示する
- 28. Androidのレイアウトに基づいてアクションバーを非表示にする方法
- 29. ssrsパラメータに基づいて列を非表示 - 列の可視性がグレー表示される
- 30. コンテンツに基づいてjqueryでtdを非表示にする
あなたの質問はよく説明されていません。 – IamStalker