【问题标题】:Add MetadataType to derived class in C#在 C# 中将 MetadataType 添加到派生类
【发布时间】:2011-08-22 06:00:50
【问题描述】:

我有一个类叫

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 时会出现此问题。

如果没有继承,则调用 Partial Class 时 MetadataType 可以正常工作。

将 MetadataType 用于派生类并与它一起使用时的任何解决方案?

谢谢

【问题讨论】:

  • 还是没有接受答案。

标签: asp.net-mvc-3 c#-4.0 entity-framework-4.1


【解决方案1】:
【解决方案2】:

删除该部分并尝试以下操作:

[MetadataType(typeof(PersonMetadata))]
public partial class Person : Contact
{
   public string Occupation { get; set; }
   public string Country { get; set; }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多