Связывание флажков в форме обратно со строковым свойством класса в MVC / Razor Pages - PullRequest
0 голосов
/ 12 марта 2019

Я создаю форму для назначения, в которой после заполнения формы данные, введенные для каждого кандидата, сохраняются в БД.Каждое свойство для заявителей создается в классе «Заявитель», некоторые требуются, а некоторые - нет.

В рамках этого мне нужно попросить пользователя ввести пол заявителя.Сначала я думал создать и реализовать флажок для каждого пола в моей форме, и в зависимости от того, какой флажок установлен в моей модели страницы, я затем сохраняю этот пол обратно в свойстве Gender моего Applicant.cs, которое является строкой.Когда OnPost () запускается.

Это работает нормально, но свойство Gender должно быть обязательным, и когда я устанавливаю для свойства значение Required в классе и запускаю приложение, при попытке отправить форму я получаюошибка на странице с указанием Пола обязательна.

Каков наилучший способ для меня, чтобы закодировать это в этом случае, или я должен думать об альтернативном решении вообще?Я знаю, что мог бы просто заставить пользователя ввести пол в текстовом поле, и это будет работать, но я думал, что группа флажков будет более аккуратной.

Заранее спасибо,

1 Ответ

0 голосов
/ 12 марта 2019

Если вы хотите, чтобы пользователь сделал один выбор из очень ограниченного числа опций, лучшим вариантом будет input type="radio".Это также дает преимущество работы с валидацией Razor Pages.

Вот ваше PageModel свойство:

[BindProperty, Required]
public string Gender { get; set; }

А вот ваша форма:

<span asp-validation-for="Gender"></span>
<form method="post">
    <input type="radio" asp-for="Gender" value="Male" />Male<br />
    <input type="radio" asp-for="Gender" value="Female" />Female<br />
    <input type="radio" asp-for="Gender" value="Other" />Other<br />
    <input type="submit"/>
</form>
...