У меня есть 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
}
}