Asp.net mvc 2 asp.net mvc3中嵌套类型的数据验证
我有以下型号Asp.net mvc 2 asp.net mvc3中嵌套类型的数据验证,asp.net-mvc-2,validation,data-annotations,Asp.net Mvc 2,Validation,Data Annotations,我有以下型号 public class RoleViewModel { [DisplayName("Role Name")] [Required(ErrorMessage="Role Name is required.")] [WhiteSpaceAttribute(ErrorMessage="Name cannot contain white space")] [StringLength(25, ErrorMessage="Name cannot be be g
public class RoleViewModel
{
[DisplayName("Role Name")]
[Required(ErrorMessage="Role Name is required.")]
[WhiteSpaceAttribute(ErrorMessage="Name cannot contain white space")]
[StringLength(25, ErrorMessage="Name cannot be be greater than 25 characters")]
public string RoleName { get; set; }
[StringLength(100, ErrorMessage = "Description should be less than 100 characters.")]
public string Description { get; set; }
[DefaultValue("")]
public string DisplayMessage { get; set; }
public bool IsSuccess { get; set; }
}
及
公共类RoleDetailsModel
{
公共RoleViewModel RoleViewModel{get;set;}
公共IList角色资源{get;set;}
}
在这里,当我在创建角色时使用RoleViewModel
时,所有验证都按预期执行。但是,当我使用RoleDetailsModel
(用于编辑)时,不会执行任何验证
从这里看来,对于嵌套类型,验证是而不是执行的。请让我知道我的理解是否正确
如果是这种情况,我如何实施上述情况?简单的方法是在RoleDetailsModel
中添加相同的验证。但这将违反干(不要重复自己)
更新:实际上我错过了控制器中的ModelState.IsValid
代码。我已经添加了这一点,现在它在服务器端运行良好
感谢您澄清我对嵌套类型部分的理解。不,您的理解不正确。对嵌套类型执行验证。显示用于RoleDetailsModel编辑的控制器和视图代码,也许我们可以帮助您更好地进行编辑。否,您的理解不正确。对嵌套类型执行验证。显示用于RoleDetailsModel编辑的控制器和视图代码,也许我们可以更好地帮助您
public class RoleDetailsModel
{
public RoleViewModel RoleViewModel { get; set; }
public IList<RoleResourceModel> RoleResources { get; set; }
}