Подтвердить что ты не робот

ASP.NET MVC Проверить роль внутри представления

В моем представлении у меня есть некоторые ссылки администратора, которые я хотел бы скрыть и показать на основе роли пользователя, как это сделать в представлении, например.

<%= if(CHECK IF USER ROLE ADMIN) { %>
        <div class="tools">
            <ul>
                <li class="edit"><%= Html.ActionLink("Edit", "Edit", new { id = Model.storyId }) %></li>
                <li class="delete"><%= Html.ActionLink("Delete", "Delete", new { id = Model.storyId }) %></li>
            </ul>
        </div>
<%= } %>
4b9b3361

Ответ 1

@if (this.User.IsInRole("Administrator"))
{

}

Ответ 2

<% if (Page.User.IsInRole("Admin")){ %>

<%}%>

Однако это ужасная идея, на мой взгляд. Лучше позволить ViewData или Model отображать представление, которое будет отображаться, и представление может просто проверять данные вида. Базовый класс контроллера или фильтр действий могут сделать повторное использование этого очень простым и позволить коду существовать в одном месте.

Ответ 3

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