Имам формуляр, съдържащ редица контроли - нищо особено:
@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, когато достигне метода на контролера.
Защо се случва това и как мога да го поправя?