2011-08-22 15 views
5

tengo una clase llamadaAñadir MetadataType a clase derivada en 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; } 
} 

tengo otra clase llamada

public partial class Person : Contact 
{ 
    public string Occupation { get; set; } 
    public string Country { get; set; } 
} 

He mi tercera clase llamada Persona que se declara la clase parcial y Cuarto llamada PersonMetaData usado para declarar anotaciones

[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; } 
    } 

En mi MVC View, hice una escritura fuerte página basada en Persona? El problema es que es necesario y las validaciones de longitud de cadena no funcionan. Este problema se produce al heredar una clase y crear una clase parcial para hacer referencia a MetadataType.

Si no hay herencia, MetadataType funciona bien cuando se llama a una clase parcial.

¿Alguna solución al usar MetadataType para la clase derivada y usar parcial con ella ??

Gracias

+0

Aún no aceptaron la respuesta. –

Respuesta

1

eliminar ese parcial y probar esto:

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