我们有大量的MVC页面在我们的实体模型和其他本地定义的类上使用验证注释,这些工作正常。但是我现在有一个页面,其基类位于另一个(引用的)项目中,该项目无效。
某些anotations工作正常(例如“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
答案 0 :(得分:1)
好吧,我似乎做错了就是在“Inherits”语句中提供一个完全限定的路径。如果我导入基类命名空间然后使用部分限定的路径,那么一切似乎都没问题!
...即
<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
呢!