У меня есть форма, содержащая ряд элементов управления - ничего особенного:
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
<fieldset>
<legend>EmployeeViewModel</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Employee.Title)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Employee.Title)
etc.....
ОБНОВЛЕНИЕ Моя ViewModel:
public class EmployeeCreateViewModel
{
public EmployeeCreateModel Employee { get; set; }
..etc
Моя модель сотрудника:
public class EmployeeCreateModel
{
[Required]
public string Title { get; set; }
[DisplayName("Job Title")]
[Required]
public string JobTitle { get; set; }
public bool Active { get; set; }
...etc
Проблема. Я использую ненавязчивую проверку, которая работает нормально, пока я не добавлю флажок в форму. Независимо от состояния флажка форма отправляется в обход проверки на стороне клиента, а ошибки перехватываются проверкой на стороне сервера. Это мой флажок:
<div class="editor-label">
@Html.LabelFor(model => model.Employee.Active)
</div>
<div class="editor-field">
@Html.CheckBoxFor(model => model.Employee.Active)
</div>
Свойство модели флажка не является обязательным полем, поэтому его не нужно проверять, и я вижу, что оно имеет допустимое значение True/False, когда оно достигает метода контроллера.
Почему это происходит, и как я могу это исправить?