2010-12-08 59 views
1

Nous avons un grand nombre de pages MVC utilisant des annotations de validation sur notre modèle d'entité et d'autres classes définies localement, et cela fonctionne correctement. Cependant j'ai maintenant une page dont la classe de base est dans un autre projet (référencé) qui ne fonctionne pas.La validation MVC ne fonctionne pas lorsque la classe de base est dans un autre projet

Certaines des annotations fonctionnent bien ("DisplayName", par exemple) mais la validation ne fonctionne pas du tout. Par exemple, lors de la soumission d'un formulaire vierge, TryUpdateModel (object) renvoie True, bien qu'il soit un validateur "Required" sur les deux champs.

La classe "UserListInfo" est le projet référencé. J'ai essayé avec et sans les "héritiers" en vain.

Des pensées?

<MetadataType(GetType(UserListInfoMetaData))> _ 
Partial Public Class UserListInfo 
    Inherits [Other Project Namespace].UserListInfo 
End Class 

Public Class UserListInfoMetaData 

    <UIHint("HiddenId")> _ 
    Public Property UserID() As Object 

    <DisplayName("Email Address")> _ 
    <Required(ErrorMessage:="You must enter an Email Address")> _ 
    <StringLength(150, ErrorMessage:="Cannot be more than 150 characters long.")> _ 
    Public Property Username() As Object 

    <DisplayName("Name")> _ 
    <Required(ErrorMessage:="You must enter a Name")> _ 
    <StringLength(150, ErrorMessage:="Cannot be more than 150 characters long.")> _ 
    Public Property FriendlyName() As Object 

End Class 

Répondre

1

Ok, ce que je semble avoir mal fait était de fournir un chemin qualifié complet dans l'instruction "Inherits". Si j'importe l'espace de noms de la classe de base et que j'utilise un chemin partiellement qualifié, tout semble aller bien!

Ie ...

<MetadataType(GetType(UserListInfoMetaData))> _ 
Partial Public Class UserListInfo 
    Inherits Bob.Fred.Jim.UserListInfo 
End Class 

ne fonctionne pas, mais ...

Imports Bob.Fred 

Class XYX 

    <MetadataType(GetType(UserListInfoMetaData))> _ 
    Partial Public Class UserListInfo 
     Inherits Jim.UserListInfo 
    End Class 
    . 
    . 
    . 

End Class 

Est-ce!