【发布时间】:2011-01-26 04:39:26
【问题描述】:
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
【问题讨论】:
-
我对此并不担心,但我认为您不应该嵌套类。此外,我认为如果没有公共关键字,这可能会使 CustomMetaData 类无法访问。尝试将 CustomerMetaData 移出 Customer 类并将其公开。
-
即使我将 CustomerMetaData 移出 Customer 类并声明为 public,它也不起作用。我担心 TryValidateObject 是否支持 buddyclass (MetadataType)?
标签: asp.net-mvc silverlight .net-4.0 data-annotations buddy-class