У меня есть вид 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, который я бы собрал, потенциально нуждался в паре перегрузок для разных случаев, поэтому он, вероятно, должен быть довольно гибким.Я просто обдумывал лучший подход к этому, и кажется, что это общая проблема, которую кто-то другой, возможно, уже придумал ...
Спасибо!