我有一个 UserFormModel ,其中包含一个 UserModel ,它具有一组带有 [Required] 属性集的属性。我已经读过 MVC 3 开箱即用将默认验证模型中的模型。但是,当我在视图中提交一个空表单时,返回一个包含空 UserModel 的 UserFormModel,ModelState.IsValid 始终为真。
我尝试只将 UserModel 发送回我的控制器,并且验证正常。似乎只是当我使用它不验证的复杂模型时。
我还尝试使用 UserFormModel 中 User 属性的 [Required] 属性(我认为默认行为不需要该属性),但仍然没有进行验证。
对此的任何想法将不胜感激。
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
}
}