Asp. net core mvc как установить атрибут 'required' с помощью бритвы - PullRequest
2 голосов
/ 14 июля 2020

У меня есть форма в mvc, где различные настройки полей контролируются из базы данных.

Я написал функцию бритвы, которая проверяет, являются ли определенные поля обязательными.

В случае истины Мне нужно установить обязательный атрибут. В настоящее время я не могу вызвать функцию бритвы во входном теге.

Какие у меня варианты?

<input type="text" class="form-control" asp-for="@Model.Title" required="@myfunction()" maxlength="200" />

Ответы [ 2 ]

2 голосов
/ 14 июля 2020

Вы можете создать помощник тега для этого типа ситуации, как показано ниже

    private const string ForAttributeName = "asp-for";

    [HtmlAttributeName("asp-is-required")]
    public bool IsMandatory { set; get; }

    public InputTextRequired(IHtmlGenerator generator) : base(generator)
    {
    }

    public override void Process(TagHelperContext context, TagHelperOutput output)
    {
        if (IsMandatory)
        {
            var attribute = new TagHelperAttribute("required");
            output.Attributes.Add(attribute);
        }
        base.Process(context, output);
    }
}

Вы можете использовать этот помощник тега в своем теге ввода, как показано ниже

<input type="text" class="form-control" asp-for="@Model.Title" asp-is-required="true/false from razor" maxlength="200" />

Подробнее Tag Helper используйте эту ссылку

0 голосов
/ 14 июля 2020

Если я правильно понял, у вас есть требуемый параметр, сохраненный в базе данных, поэтому вы можете передать его из бэкенда. Я бы рекомендовал использовать Viewbag и отправлять его для просмотра с вашего контроллера. enter image description here

Then you can set required tag. введите описание изображения здесь

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