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);