Лучший подход к изменениям пользовательского интерфейса на основе ролей? - PullRequest
2 голосов
/ 05 октября 2010

У меня есть вид MVC, который изменяет несколько небольших элементов пользовательского интерфейса в зависимости от роли пользователя.В настоящее время он изменяет вывод, используя несколько операторов if (), используя пару логических значений, которые я отправил в представление через viewmodel.Тем не менее, это не очень хороший подход, поэтому я хотел бы перенести все это либо в класс HtmlHelper, либо в сам контроллер.Вот текущий код:

<% if ( Model.IsAdmin ) { %> <td> <% } %>  <%--Opening tag for admin options--%>
<% if ( Model.IsAdmin ) { %> <%:Html.ActionLink("Delete", "Delete", new { id = Id})%> <% } %> <%--Admin options--%>
<% if ( Model.IsAdmin ) { %> </td> <% } %> <%--Closing tag for admin options--%>

Есть отдельное место, где я также показываю / скрываю ссылку для создания новой

<% if ( Model.IsEditor || Model.IsAdmin ) { %>
    <%:Html.ActionLink("Create New", "Create") %>
<% } %>

Может быть и пара других подобных ситуаций.

Таким образом, любой HtmlHelper, который я бы собрал, потенциально нуждался в паре перегрузок для разных случаев, поэтому он, вероятно, должен быть довольно гибким.Я просто обдумывал лучший подход к этому, и кажется, что это общая проблема, которую кто-то другой, возможно, уже придумал ...

Спасибо!

Ответы [ 2 ]

1 голос
/ 05 октября 2010

Похоже, это решение подойдет вам:

Ролевый контент asp.net mvc

1 голос
/ 05 октября 2010

Либо используйте частичные представления в своих представлениях, либо создайте разные представления для каждой роли и визуализируйте представление в соответствии с ролью. Вы также можете проверить RenderAction .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...