小编Die*_*zer的帖子

使用ASP.NET MVC 2.0支持嵌套模型和类验证

我正在尝试使用System.ComponentModel.DataAnnotations属性验证包含具有验证规则的其他对象的模型,希望默认的MVC实现就足够了:

var obj = js.Deserialize(json, objectInfo.ObjectType);
if(!TryValidateModel(obj))
{
    // Handle failed model validation.
}
Run Code Online (Sandbox Code Playgroud)

该对象由原始类型组成,但也包含其他也使用DataAnnotications的类.像这样:

public class Entry
{
    [Required]
    public Person Subscriber { get; set; }

    [Required]
    public String Company { get; set; }
}

public class Person
{
    public String FirstName { get; set;}

    [Required]
    public String Surname { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

问题是ASP.NET MVC验证只降低了1级,只评估顶级类的属性,可以在digitallycreated.net/Blog/54/deep-inside-asp.net-mvc-2上阅读-model-元数据和验证.

有谁知道这个优雅的解决方案?我尝试过xVal,但它们似乎使用了非递归模式(http://blog.stevensanderson.com/2009/01/10/xval-a-validation-framework-for-aspnet-mvc/).

有人必须在此之前遇到这个问题吗?如果您正在设计Web服务,那么在模型中嵌套对象似乎并不那么奇怪.

validation asp.net-mvc asp.net-mvc-2-validation data-annotations asp.net-mvc-2

6
推荐指数
1
解决办法
2153
查看次数