2010-12-08 34 views
1

我们有大量的MVC页面在我们的实体模型和其他本地定义的类上使用验证注释,并且这些工作正常。但是,我现在有一个页面,其基类在另一个(引用)的项目中不起作用。MVC Validation无法在基类在另一个项目中工作

一些偏移工作正常(例如“DisplayName”),但验证根本不起作用。例如,在提交空白表单时,TryUpdateModel(object)返回True,尽管它们是两个字段上的“必需”验证器。

“UserListInfo”类是被引用的项目。我尝试过和没有“继承”无济于事。

有什么想法?

<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 

回答

1

好的,我似乎做错了什么是在“继承”语句中提供完全限定的路径。如果我导入基类命名空间,然后使用部分合格的路径,似乎很好!

IE浏览器...

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

不行的,但是......

Imports Bob.Fred 

Class XYX 

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

End Class 

呢!

相关问题