Как создать две радиокнопки для одного и того же обязательного свойства C # MVC Razor - PullRequest
0 голосов
/ 25 октября 2018

У меня есть модель с обязательным свойством под названием EmploymentStatus.Я хочу создать две радио-кнопки, используя Html.RadioButtonFor на странице Razor.Вот HTML-код, который у меня есть на данный момент:

<div class="control-group--small">
    <label class="control-label align-center">Are you self-employed?</label>
    <label class="control control-radio">
        Self-Employed
                @Html.RadioButton("BorrowerEmploymentStatus", "Self-Employed", false)
        </label>
        <label class="control control-radio">
                Not Self-Employed
                @Html.RadioButton("BorrowerEmploymentStatus", "Not Self-Employed", false)
        </label>
</div>

Вот свойство моей модели:

[Required(ErrorMessage = "Please select Yes or No if you are self-employed or not.")]
[DisplayName("Are you self-employed?")]
public string EmploymentStatus { get; set; }

Проблема в том, что Html.RadioButton помещает необходимую проверку только на первое радиокнопка.Поэтому, если кто-то выберет «Не самозанятый», свойство модели будет установлено, но ModelState будет недействительным, потому что проверка была установлена ​​на переключателе, который не был выбран.

Первый Html.RadioButton создает:

<input data-val="true" data-val-required="Please select Yes or No if you are self-employed or not." name="BorrowerEmploymentStatus" type="radio" value="Self-Employed">

И второй Html.RadioButton генерирует:

<input name="BorrowerEmploymentStatus" type="radio" value="Not Self-Employed">

Итак, мой вопрос: как у вас есть две радиокнопки для одного и того же требуемого свойства модели и поддержания действительного ModelState?

...