Как создать пользовательский элемент управления на основе типа свойства в классе модели в MVC Core - PullRequest
0 голосов
/ 04 апреля 2019

Я создаю веб-приложение MVC, я хотел бы, чтобы при определении свойства было указано Bool:

 public bool? Active { get; set; } 

затем в представлении будет сгенерирован флажок, включающий этот конкретный класс cssclass "form-check-input" и окруженный Div следующим образом:

<div class="form-check">
            <input class="form-check-input" type="checkbox" id="Active">
            <label class="form-check-label" for="Active">
                Check me out
            </label>
</div>

в этой ситуации позже, если у меня есть несколько свойств в модели с типом Bool, этот HTML должен генерироваться автоматически! В качестве примера я привел тип bool! есть ли подсказка или какой-либо пример, который вы можете привести?

1 Ответ

0 голосов
/ 04 апреля 2019

Чтобы создать один флажок с Mvc Core, вы просто используете input-tag-helper.Вам необходимо определить свойство Boolean для вашей модели (или PageModel в случае, если вы используете Razor Pages) и после этого просто передать его атрибуту asp-for, если свойство не имеет значения null:

public bool Active { get; set; } 

и на ваш взгляд:

<input asp-for="Active" />

Как вы уже знаете, имя свойства, переданное атрибуту asp-for, используется для значений атрибутов id и name.Сгенерированный HTML будет включать два поля для свойства Active:

<input type="checkbox" data-val="true" data-val-required="The Active field is  required." id="Active" name="Active" value="true">
<input name="Active" type="hidden" value="false">

Но если вы хотите сгенерировать несколько флажков, возможно, вы можете начать с этого фрагмента кода:

@for (var i = 1; Model.[your model].Count(); i++)
{
    <input asp-for="[your model][i].Active" />
}

Примечание [your model] - это название модели вашего класса или PageModel, если вы используете Razor Pages.

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