我在Web窗體中的RegularExpressionValidator上設置了以下正則表達式作爲ValidationExpression
屬性。當我在驗證的控件中輸入非法字符時,驗證程序檢測到它並顯示一條錯誤消息。RegularExpressionVididator不檢測空字符串
<appSettings>
<add key="categoryPattern" value="^[a-zA-Z0-9_+\-() ]{1,50}$" />
</appSettings>
我的驗證:
<asp:RegularExpressionValidator ValidationExpression="<%$ AppSettings:categoryPattern %>"
我的服務器端驗證:
Regex rex = new Regex(ConfigurationManager.AppSettings["categoryPattern"]);
if (!rex.Match(categoryName).Success)
{
throw new ArgumentException("CategoryName must match expression: " + rex);
正如你所看到的,完全一樣的模式應用於客戶端和服務器端。
但是,當我清除驗證的控件並提交一個空字符串時,驗證程序認爲它正常,並且從我的服務器端驗證中得到一個錯誤。除了RegularExpressionValidator的破壞合同之外,任何人都知道這裏有什麼問題?
感謝@Mehrdad,我添加了一個RequiredFieldValidator,但是我的服務器驗證不在頁面上,而是在頁面使用的類中,以及可能的其他代碼中,所以我保留這一點。 – ProfK 2009-04-26 19:33:27