本文介绍了当我使用Validator.TryValidateObject验证不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
的DataAnnotations不能与好友类的工作。下面code总是验证属实。为什么呢?
DataAnnotations does not work with buddy class. The following code always validate true. Why ?
变种的isValid = Validator.TryValidateObject(新客户(),上下文,结果,真);
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文字
Here is another thread with same question., but no answer.link text
推荐答案
我找到了答案在这里:http://forums.silverlight.net/forums/p/149264/377212.aspx
MVC识别MetaDataType属性,但其他项目则没有。验证之前,您需要手动注册的元数据类:
MVC recognizes the MetaDataType attribute, but other projects do not. Before validating, you need to manually register the metadata class:
TypeDescriptor.AddProviderTransparent(
new AssociatedMetadataTypeTypeDescriptionProvider(typeof(Customer), typeof(CustomerMetadata)), typeof(Customer));
var isValid = Validator.TryValidateObject(new Customer(), context, results, true);
这篇关于当我使用Validator.TryValidateObject验证不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!