对asp.net mvc3中嵌套类型的数据验证

时间:2011-04-05 06:54:15

标签: 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 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; }
}

public class RoleDetailsModel
{
    public RoleViewModel RoleViewModel { get; set; }

    public IList<RoleResourceModel> RoleResources { get; set; }
}

这里,当我在创建角色时使用RoleViewModel时,所有验证都按预期执行。但是,当我使用RoleDetailsModel(用于编辑)时,不会执行任何验证。

从这里看来,嵌套类型的验证似乎是。如果我的理解是正确的,请告诉我。

如果是这种情况,我该如何实施上述案例?简单的方法是在RoleDetailsModel中添加相同的验证。但这会违反DRY(不要重复自己)。

更新:实际上我错过了控制器中的ModelState.IsValid代码。我已添加,现在它在服务器端工作正常。

感谢您清除我对嵌套类型部分的理解。

0 个答案:

没有答案
相关问题