Добавить MetadataType в производный класс в C #

У меня есть класс с именем

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 отлично работает при вызове частичного класса.

Любые решения при использовании MetadataType для производного класса и использовании partial с Это ??

Спасибо

5
задан Vinay 22 August 2011 в 06:00
поделиться