Условно отображая части моего взгляда - PullRequest
3 голосов
/ 23 апреля 2009

Допустим, у меня есть веб-сайт asp.net mvc со страницей, на которой перечислены продукты. На этой странице у меня есть кнопка «Удалить», которая должна отображаться только для пользователя, который вставил продукт. Какой лучший способ сделать это?

Одним из способов, которым я думал об этом, была установка логического значения в контроллере, чтобы позволить представлению знать, должна ли отображаться кнопка. Что-то вроде:

if(IsProductOwner(UserId))
    ViewData["CanDelete"] = true;

Тогда в представлении я могу просто сделать

<% if((boolean)ViewData["CanDelete"] == true) { %>
    // show delete button
<% } %>

Но есть ли лучший способ сделать это?

1 Ответ

2 голосов
/ 23 апреля 2009

Первоначально я думал, что вы должны по крайней мере сделать это функцией класса Product, чтобы вы могли перейти:

<% if (product.IsOwnedBy(UserId)) { %>
    // show delete button
<% } %>

Это удаляет некоторые плавные ViewData и встраивает бизнес-логику в ваши классы, а не всплывает по краям.

Однако я не нашел достойного способа сделать такой вид условного отображения в представлениях, если только представление существенно не отличается, тогда я получаю действие для отображения другого представления в зависимости от контекста.

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