Me gustaría interceptar el carácter "<" en el campo de formulario mediante un validador de expresiones regulares. Voy a describir el problema en 3 pasos:ASP.NET MVC ValidateInput (falso) deja de funcionar con xVal y [RegularExpression] DataAnnotation
Paso 1: Cuando trato de enviar un formulario con un campo que contiene el carácter "<", me sale el "petición potencialmente peligroso ..." - como se espera en ASP.NET.
Paso 2: Para evitar RequestValidation de ASP.NET, decoraré mi método de actualización en el controlador con "[ValidateInput (false)]".
Funciona como se esperaba - ahora puedo publicar el carácter "<" sin error.
Paso 3: Yo uso xVal con DataAnnotations. Por ejemplo, [Obligatorio] o [Longitud de cadena (255)] funciona como se esperaba.
pero cuando se utiliza: [RegularExpression ("Los caracteres especiales no están permitidos" "^ [^ <>] * $", ErrorMessage =)], consigo la "petición Potencialmente dangeros ... "Error nuevamente, a pesar de la directiva [ValidateInput (false)].
¿Qué está pasando? ¿Hay alguna manera más simple para la validación de regex, pero con [ValidateInput (false)] en su lugar? Por supuesto, me gustaría tener mi código de validación en el modelo, no en el controlador.
Teniendo en cuenta que el bot de la comunidad SO ha llevado esto a la cima, ¿puede confirmar si esto todavía es un problema? –
No, fue un insito en MVC 1 + xVal. En MVC 2 la validación funciona como se supone (y no hay necesidad de xVal más). – Alex42