MVC5 - динамически выбирать, какие свойства отображаются в форме - PullRequest
0 голосов
/ 14 октября 2018

Допустим, у меня есть два пользователя, которые обращаются к форме.Один из них является администратором, а другой - обычным пользователем.И только администратор может просматривать и редактировать AdminOnlyField Тогда, скажем, у меня есть следующий класс:

public class Car
{
    public string Make {get;set;}
    public string Model {get;set;}
    public string AdminOnlyField {get;set;}

}

Я не могу понять, как условно сделать AdminOnlyField видимым и редактируемым, используя @html.BeginForm(), я знаю, что вы можете использовать свойства из ViewBag, но в этом случае вся необходимая информация возвращается из базы данных, поэтому я не думаю, что могу использовать ViewBag.

Это что-тоMVC может выполнить или мне нужно изучить Angular?

1 Ответ

0 голосов
/ 14 октября 2018

Самый простой способ - вставить if(User.IsInRole(stringRole))

Тем не менее, если вы хотите скрыть этот механизм, вы можете создать EditorTemplate.

Файл должен находиться в папке Views/Shared/EditorTemplates/EditFormTemplate.cshtml

Для AdminOnlyField вы можете скрыть эту функциональность по шаблону.

@if(User.IsInRole("Admin")
{
    <div>
        <label>AdminOnlyField: </label>
        @Html.EditorFor(model => Model.AdminOnlyField)
    </div>
}

Использование:

@Html.EditorForModel("YourCustomTemplateName")

Если вам нужна дополнительная информация:

Тамбольше информации

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