2
下列验证工作正常,两个客户端和服务器端ASP.NET MVC如何获得自定义验证与客户端验证
<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
我显然缺少someth非常简单。
在此先感谢。
也许这只是因为我没有阅读C#所有这一切,但确实看起来很复杂。 – 2010-06-25 14:46:18
这是唯一的方法。客户端验证通过检查您使用的属性并生成必要的JavaScript代码来工作。当您编写自定义验证方法时,无法自动生成JavaScript。如果在您的验证方法中使用了反射或调用外部Web服务来执行验证呢?您如何期望客户端验证自动运行? – 2010-06-25 14:51:32
不,我只是“ASS-umed”,因为我使用的自定义验证程序实际上是从基本的REGEX验证程序派生出来的,所以会有一些汽车魔法可以为我构建它。如果我仍然需要手动编写Javascript,那么使用自定义Regex验证器来简化我的服务层验证是毫无意义的。我只是希望我可以重复使用实际的正则表达式来实现简单的实现,而无需复制/粘贴。 – 2010-06-25 18:22:12