У меня есть UserFormModel, который содержит UserModel, который имеет набор свойств с установленным атрибутом [Required]. Я читал, что MVC 3 из коробки будет проверять модели в моделях по умолчанию. Однако, когда я отправляю пустую форму в своем представлении, возвращая UserFormModel, содержащую пустую UserModel, ModelState.IsValid всегда имеет значение true.
Я попытался отправить только UserModel обратно на свой контроллер, и это подтверждается. Просто кажется, что когда я работаю со сложными моделями, они не проверяются.
Я также пробовал это с атрибутом [Required] в свойстве User в UserFormModel (который, я считаю, не требуется для работы поведения по умолчанию), но проверка по-прежнему не выполняется.
Любые идеи по этому поводу будут высоко оценены.
public class UserFormModel
{
public UserModel User;
public IEnumerable<SelectListItem> Roles { get; set; }
}
public class UserModel : ModelBase
{
[Required]
public string UserName { get; set; }
public string Title { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string LastName { get; set; }
}
[HttpPost]
public ActionResult Create(UserFormModel userFormModel)
{
if (ModelState.IsValid)
{
// Do Something
}
}