Условно отрендерить что-то в ASP.NET MVC 5 - PullRequest
0 голосов
/ 19 октября 2018

Я ищу эквивалент Reacts компонентов высшего порядка в ASP.NET MVC 5.

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

Если бы я сделал это в viewModel, мне нужно было бы загрязнить мои конструкторы моделей представлений проверками привилегий безопасности, поэтому я надеялся сделать это в каком-то элементе управления.

Я надеялся на что-то вроде:

@Html.PermissionCheck(new Privilege[ SecurityPrivilege.CanEdit ]) {
    <input type="button" value="Edit" />
}

Таким образом, мой код проверки прав доступа находится в одном месте, и у меня есть доступ к объекту пользователя без необходимости передавать его во всю мою модельbuilders.

Я видел различные примеры элементов управления, в том числе: ASP.NET MVC Html Helper

Проблема с вышесказанным в том, что мне кажется, что это прекрасно подходит для обертывания моего элемента управленияв стандартном окружении.Меньше так при условном предоставлении.

Не знаете, как получить частичные представления для принятия группы содержимого.

1 Ответ

0 голосов
/ 19 октября 2018
Расширение

A HtmlHelper все равно будет работать для вас:

public static class HtmlHelperExtensions
{
    public static bool PermissionCheck(this HtmlHelper helper, Privilege[] privs)
    {
       ...
       return true/false;
    }
}

Тогда, на ваш взгляд:

@if(Html.PermissionCheck(new Privilege[ SecurityPrivilege.CanEdit ]))
{
    <input type="button" value="Edit" />
}

Условное рендеринг основан на синтаксисе @if(), предоставленном Razor engine.

Связанный пример слишком усложнил его.Это используется для контента, который должен быть упакован.Все, что вам нужно, это вернуть простой bool.

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