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