我有一个名为
的班级public partial class Contact
{
public int Id { get; set; }
public string Title { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
我有另一个名为
的班级public partial class Person : Contact
{
public string Occupation { get; set; }
public string Country { get; set; }
}
我的第三个类名为Person,它被声明为Partial,第四个类名为PersonMetaData,用于声明注释
[MetadataType(typeof(PersonMetadata))]
public partial class Person : Contact
{
}
public class PersonMetadata
{
[StringLength(20, ErrorMessageResourceName = "FirstNameLength",
ErrorMessageResourceType = typeof(BasicErrors))]
[Required(ErrorMessageResourceName = "FirstNameRequired",
ErrorMessageResourceType = typeof(BasicErrors))]
public string FirstName { get; set; }
[StringLength(20, ErrorMessageResourceName = "LastNameLength",
ErrorMessageResourceType = typeof(BasicErrors))]
[Required(ErrorMessageResourceName = "LastNameRequired", ErrorMessageResourceType
= typeof(BasicErrors))]
public string LastName { get; set; }
}
在我的MVC视图中,我创建了一个基于Person的强类型页面?问题是,必需和字符串长度验证不起作用。继承类并创建部分类以引用MetadataType时会发生此问题。
如果没有继承,那么MetadataType在调用Partial Class时工作正常。
将MetadataType用于派生类并使用partial的任何解决方案?
由于
答案 0 :(得分:3)
这是MVC2中的问题。但它适用于MVC3。请参阅以下文章:
答案 1 :(得分:1)
删除该部分并尝试此操作:
[MetadataType(typeof(PersonMetadata))]
public partial class Person : Contact
{
public string Occupation { get; set; }
public string Country { get; set; }
}