Tengo el siguiente conjunto de expresiones regulares como la propiedad ValidationExpression
en un RegularExpressionValidator en un formulario web. Cuando ingreso un carácter ilegal en el control validado, el validador lo detecta y muestra un mensaje de error.RegularExpressionValidator no detecta cadenas vacías
<appSettings>
<add key="categoryPattern" value="^[a-zA-Z0-9_+\-() ]{1,50}$" />
</appSettings>
Mi validador:
<asp:RegularExpressionValidator ValidationExpression="<%$ AppSettings:categoryPattern %>"
Mi servidor de validación del lado:
Regex rex = new Regex(ConfigurationManager.AppSettings["categoryPattern"]);
if (!rex.Match(categoryName).Success)
{
throw new ArgumentException("CategoryName must match expression: " + rex);
Como se puede ver, exactamente el mismo patrón se aplica lado del cliente y del lado del servidor.
Sin embargo, cuando borro el control validado y envío una cadena vacía, el validador piensa que está bien y me da un error de mi validación del lado del servidor. ¿Alguien sabe qué está mal aquí, a excepción del contrato roto de RegularExpressionValidator?
Gracias @Mehrdad, he agregado un RequiredFieldValidator, pero la validación de mi servidor no está en la página, sino en la clase utilizada por la página y posiblemente con otro código, así que lo guardo. – ProfK
De nada. –