У меня есть модель, которая выглядит следующим образом:
public class Lesson
{
public int Id { get; set; }
[Required(ErrorMessage = "Naam voor de les is verplicht")]
[Display(Name="Naam")]
public string Name { get; set; }
[Required(ErrorMessage = "Tijd is verplicht")]
[Display(Name="Tijd")]
public string Time { get; set; }
//Prijs is default exclusief BTW
[Required(ErrorMessage = "Prijs is verplicht")]
[Display(Name="Prijs (excl btw)")]
public double Price { get; set; }
[Display(Name = "Maximum aantal leerlingen")]
public int MaxStudents { get; set; }
}
И представление создания, которое выглядит так:
<div>
<div>
@Html.LabelFor(model => model.Name)
</div>
<div>
@Html.TextBoxFor(model => model.Name, new { @class = "gt-form-text" })
@Html.ValidationMessageFor(model => model.Name)
</div>
<div>
@Html.LabelFor(model => model.Time)
</div>
<div>
@Html.TextBoxFor(model => model.Time, new { @class = "gt-form-text" })
@Html.ValidationMessageFor(model => model.Time)
</div>
<div>
@Html.LabelFor(model => model.Price)
</div>
<div>
@Html.TextBoxFor(model => model.Price, new { @class = "gt-form-text" })
@Html.ValidationMessageFor(model => model.Price)
</div>
<div>
@Html.LabelFor(model => model.MaxStudents)
</div>
<div>
@Html.TextBoxFor(model => model.MaxStudents,
new { @class = "gt-form-text" })
@Html.ValidationMessageFor(model => model.MaxStudents)
</div>
</div>
В методе Application_Start()
я установил DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes
в ложь.
MaxStudents
обнуляем и не требуется, тем не менее, если MaxStudents
равно нулю, Modelstate
недействителен (ModelState.IsValid = false)
.
Мое сообщение об ошибке не отображается, вместо этого я получаю сообщение об ошибке A value is required
.
Что я могу сделать, чтобы ModelState.IsValid
было верным?