以下验证在客户端和服务器端都可以正常工作
<DisplayName("website")> _
<StringLength(256, ErrorMessage:="Web Address cannot exceed 256 characters.")> _
<RegularExpression("^http(s?)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$", ErrorMessage:="Not a valid website address")> _
Public Property WebSite As String
但是,此验证仅适用于服务器端
<DisplayName("website")> _
<StringLength(256, ErrorMessage:="Web Address cannot exceed 256 characters.")> _
<Website(ErrorMessage:="Not a valid website address")> _
Public Property WebSite As String
我的自定义WebsiteAttribute看起来像这样
Public Class WebsiteAttribute : Inherits RegularExpressionAttribute
Public Sub New()
MyBase.new("^http(s?)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?$")
End Sub
End Class
我显然错过了一些非常简单的事情。
提前致谢。
答案 0 :(得分:2)
查看Phil Haack的this blog post,其中演示了如何为自定义属性设置客户端验证。基本上,您需要编写并注册自定义DataAnnotationsModelValidator<T>
。