Иметь пользовательские разрешения как отдельный модуль модели.Создайте частичные представления, которые содержат блоки кода, которые вы хотите показать / скрыть.Передайте модуль частичному представлению, и пусть представление содержит логику для того, что показывать.
Это должно означать, что вы можете создать один блок логики в вашем частичном представлении, с решением, являющимся некоторыми базовыми if или переключателямии разметка для отображения его более четким и управляемым.
Так, например, допустим, вы создаете модель разрешений, которую наследуют все ваши модели страниц, таким образом гарантируя, что вы можете передавать одинаковые разрешения всем страницам.Затем вы можете вызвать представление и передать ему модель следующим образом:
<%Html.RenderPartial("Widgets/NavigationUserControl"); %>
Это будет содержать разметку и логику для навигации пользователя.В этом частичном представлении вы бы унаследовали ваш объект прав доступа:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<WebApp.Web.Models.Permissions>" %>
А затем вы можете выполнить более базовую логику в разметке или воспользоваться помощником html для выполнения хрюка.работать и возвращать некоторые перечисления / свойства для более простого кода, чтобы принять решение.Например;
<%
if (Model.User.IsAdmin)
{
%>
...html...
<%
}
else
{
%>
...html...
<%
}
%>