ASP.NET MVC中的LoginView控件类似物

问题描述

| 如何根据“ 0”在ASP.NET MVC中进行条件内容渲染?我尝试过所有可以在这里找到的比赛,但还是不满意。我需要根据用户角色隐藏操作链接,所以首先我想到了一个
public static MvcHtmlString ActionLink(this HtmlHelper html,string linkUrl,string linkText,object htmlAttributes,bool alwaysVisible,params string[] roles)
但是后来我意识到,我也经常需要隐藏外部内容(例如,放置链接菜单中的
<li></li>
)。我遵循最佳做法的建议并获得
UrlHelperExtension
,因此我的典型链接如下所示:
<a href=\"@Url.someStuff()\">some stuff</a>
并且我无法尝试在ѭ5上实现帮助程序的想法,这样可以从适当的控制器方法获取
AuthorizeAttribute
。您有什么解决方案?     

解决方法

        我倾向于使用一些类似的东西:
@if (User.IsInRole(\"Role\")) {
<li>
  <a href=\"@Url.SomeStuff()\">Some stuff</a>
<li>
}
这样,如果需要,我可以为每个角色提供多个链接。     ,        您可能会采用的另一种方法是使用CSS来根据角色隐藏要隐藏的元素,例如
<li class=@(User.IsInRole(\'role\')?\"showClass\":\"hideClass\")>
  <a href=\"@Url.SomeStuff()\">Some stuff</a>
<li>
或带有Jquery的东西,例如:
    <li class=\"@User.Role\")>
      <a href=\"@Url.SomeStuff()\">Some stuff</a>
    <li>

    $(document).ready(function () {
       $(\".SomeRole\").hide()
    }