问题描述
|
如何根据“ 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()
}