加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 当我使用Validator.TryValidateObject时验证不起

发布时间:2020-12-15 19:25:02 所属栏目:asp.Net 来源:网络整理
导读:DataAnnotations不适用于好友类.以下代码总是验证为真.为什么 var isValid = Validator.TryValidateObject(new Customer(),Context,results,true); 这里是好友班. public partial class Customer { public string Name { get; set; } public int Age { get;
DataAnnotations不适用于好友类.以下代码总是验证为真.为什么

var isValid = Validator.TryValidateObject(new Customer(),Context,results,true);

这里是好友班.

public partial class Customer 
{ 
    public string Name { get; set; } 
    public int Age { get; set; } 
}

[MetadataType(typeof(CustomerMetaData))]
public partial class Customer 
{ 
    public class CustomerMetaData 
    { 
        [Required(ErrorMessage = "You must supply a name for a customer.")]        
        public string Name { get; set; } 
    } 
}

这是另一个同样问题的线程,但没有回答.
link text

解决方法

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

MVC识别MetaDataType属性,但其他项目没有.在验证之前,您需要手动注册元数据类:

TypeDescriptor.AddProviderTransparent(
            new AssociatedMetadataTypeTypeDescriptionProvider(typeof(Customer),typeof(CustomerMetadata)),typeof(Customer));

var isValid = Validator.TryValidateObject(new Customer(),context,true);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读