ASP.NET MVC如何使用自定义验证程序来使用客户端验证

时间:2010-06-25 05:19:02

标签: asp.net-mvc validation attributes

以下验证在客户端和服务器端都可以正常工作

    <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

我显然错过了一些非常简单的事情。

提前致谢。

1 个答案:

答案 0 :(得分:2)

查看Phil Haack的this blog post,其中演示了如何为自定义属性设置客户端验证。基本上,您需要编写并注册自定义DataAnnotationsModelValidator<T>

相关问题