首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用验证器类验证DataAnnotations

使用验证器类验证DataAnnotations
EN

Stack Overflow用户
提问于 2010-01-12 23:45:28
回答 2查看 32.3K关注 0票数 38

我正在尝试用Validator class验证一个用数据注释修饰的类。

当属性应用于同一个类时,它工作得很好。但是当我尝试使用元数据类时,它不起作用。为了让Validator使用元数据类,我需要对它做什么吗?下面是一些代码..

这是可行的:

代码语言:javascript
复制
public class Persona
{
    [Required(AllowEmptyStrings = false, ErrorMessage = "El nombre es obligatorio")]
    public string Nombre { get; set; }

    [Range(0, int.MaxValue, ErrorMessage="La edad no puede ser negativa")]
    public int Edad { get; set; }
}

这不起作用:

代码语言:javascript
复制
[MetadataType(typeof(Persona_Validation))]
public class Persona
{
    public string Nombre { get; set; }
    public int Edad { get; set; }
}

public class Persona_Validation
{
    [Required(AllowEmptyStrings = false, ErrorMessage = "El nombre es obligatorio")]
    public string Nombre { get; set; }

    [Range(0, int.MaxValue, ErrorMessage = "La edad no puede ser negativa")]
    public int Edad { get; set; }
}

下面是我验证实例的方式:

代码语言:javascript
复制
ValidationContext context = new ValidationContext(p, null, null);
List<ValidationResult> results = new List<ValidationResult>();

bool valid = Validator.TryValidateObject(p, context, results, true);

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-18 11:19:11

我在这里找到了答案:http://forums.silverlight.net/forums/p/149264/377212.aspx

MVC可以识别MetaDataType属性,但其他项目不能。验证前,需要手动注册元数据类:

代码语言:javascript
复制
TypeDescriptor.AddProviderTransparent(
            new AssociatedMetadataTypeTypeDescriptionProvider(typeof(Persona), typeof(Persona_Validation)), typeof(Persona));

ValidationContext context = new ValidationContext(p, null, null);
List<ValidationResult> results = new List<ValidationResult>();

bool valid = Validator.TryValidateObject(p, context, results, true);
票数 48
EN

Stack Overflow用户

发布于 2010-01-27 01:22:11

尝试将元数据类移动到与Persona类相同的名称空间中。我遇到了类似的问题,将我的元数据类移动到与L2S模型类相同的名称空间中。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2050161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档