Tôi có regex sau được đặt làm thuộc tính ValidationExpression
trên RegularExpressionValidator trong biểu mẫu web. Khi tôi nhập một ký tự không hợp lệ trong điều khiển được xác thực, trình xác nhận sẽ phát hiện ra và hiển thị thông báo lỗi.RegularExpressionValidator không phát hiện chuỗi trống
<appSettings>
<add key="categoryPattern" value="^[a-zA-Z0-9_+\-() ]{1,50}$" />
</appSettings>
validator của tôi:
<asp:RegularExpressionValidator ValidationExpression="<%$ AppSettings:categoryPattern %>"
My phía máy chủ xác nhận:
Regex rex = new Regex(ConfigurationManager.AppSettings["categoryPattern"]);
if (!rex.Match(categoryName).Success)
{
throw new ArgumentException("CategoryName must match expression: " + rex);
Như bạn có thể thấy, chính xác cùng một khuôn mẫu được áp dụng phía khách hàng và phía máy chủ.
Tuy nhiên, khi tôi xóa kiểm soát đã xác thực và gửi một chuỗi rỗng, trình xác thực cho rằng điều đó là OK và tôi gặp lỗi do xác thực phía máy chủ của tôi. Bất cứ ai biết những gì là sai ở đây, ngoại trừ các hợp đồng bị hỏng của RegularExpressionValidator?
Cảm ơn @Mehrdad, tôi đã thêm một RequiredFieldValidator, nhưng xác thực máy chủ của tôi không có trên trang, nhưng trong lớp được sử dụng bởi trang, và có khả năng mã khác, vì vậy tôi giữ nó. – ProfK
Bạn được chào đón. –