ASP.NET MVC Проверка роли в представлении - PullRequest
27 голосов
/ 06 января 2011

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

<%= 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>
<%= } %>

Ответы [ 3 ]

50 голосов
/ 13 февраля 2014
@if (this.User.IsInRole("Administrator"))
{

}
23 голосов
/ 06 января 2011
<% if (Page.User.IsInRole("Admin")){ %>

<%}%>

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

0 голосов
/ 06 января 2011

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

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