Я видел несколько похожих вопросов, но ни один из них не похож на то, что я пытаюсь сделать.
Это моя текущая реализация без какой-либо защиты:
<div id="menucontainer">
<ul id="menu">
<li><%= Html.ActionLink("Main List", "Index", "AController")%></li>
<li><%= Html.ActionLink("Product List", "Index", "BController")%></li>
<li><%= Html.ActionLink("Company List", "Index", "CController")%></li>
<li><%= Html.ActionLink("User List", "Index", "DController")%></li>
</ul>
</div>
Это нормально, и выше работает. У меня есть настройка [Авторизовать] Атрибуты в Действиях для CController и DController, чтобы предотвратить несанкционированный доступ - но я хотел бы удалить эти пункты из меню для пользователей, которые не имеют правильную роль, потому что когда они видят ее и нажимают и это говорит им, что у них нет разрешения, они захотят этого. Если они не знают, что это там, это просто лучше для всех участников ...
Нечто подобное, в конечном счете, является целью, к которой я стремлюсь, но я ищу более приукрашенный подход MVC, где "view" - "тупой":
<div id="menucontainer">
<ul id="menu">
<li><%= Html.ActionLink("Main List", "Index", "AController")%></li>
<li><%= Html.ActionLink("Product List", "Index", "BController")%></li>
<% If(Role = Roles.Admin) { %>
<li><%= Html.ActionLink("Company List", "Index", "CController")%></li>
<li><%= Html.ActionLink("User List", "Index", "DController")%></li>
<% } %>
</ul>
</div>