如何根據User.IsInRole()
在ASP.NET MVC中進行條件內容呈現?嘗試所有比賽,我可以在這裏找到,在SO但仍然不滿意。我需要隱藏操作鏈接根據用戶的角色,所以首先我想到了一個幫手像ASP.NET MVC中的LoginView控件模擬器MVC
public static MvcHtmlString ActionLink(this HtmlHelper html, string linkUrl, string linkText, object htmlAttributes, bool alwaysVisible, params string[] roles)
,但後來我意識到,我經常需要隱藏在外含量過多(例如,<li></li>
的菜單,在這裏我的鏈接被放入)。我遵循best practices建議,並有UrlHelperExtension
所以我一般鏈接的樣子:
<a href="@Url.SomeStuff()">some stuff</a>
,我不能嘗試的想法來實現輔助過RouteLink()
將搶AuthorizeAttribute
從適當的控制器方法可以我?你的解決方案是什麼?
呀,乍看上去簡單,但在大型應用程序,這將導致標籤湯。我們知道Rob Conery提出的建議 - 「如果有一個IF,就做一個助手」。 – UserControl 2011-06-15 11:42:10
另一種方法是創建另一個幫助器,如ListItemActionLink,它調用您的自定義ActionLink幫助器,但只將結果字符串放入li標記(它的字符串爲空只是返回一個字符串)。更通用的方法是創建一個TagActionLink,您可以在其中傳遞標籤(如果需要,還可以使用html屬性)。這將給一個更清潔的佈局。 – lancscoder 2011-06-15 12:40:22