Pregunta Lado del servidor de Validación ASP.NET


Tengo un formulario web ASP.NET que quiero validar desde el lado del cliente y desde el servidor, usando los mismos controles de validación. Parece que no puedo encontrar la solución para esto: la validación del cliente funciona muy bien, pero cuando desactivo javascript, ignora la validación.

La ayuda sería muy apreciada.

romano


6
2018-01-04 17:30


origen


Respuestas:


Siempre puede activar la validación por validator1.Validate() método, que hará la comparación del lado del servidor. Comprobar Page.IsValid para ver si la validación del lado del servidor no se está realizando? Creo que puedes invocarlo a través de Page.Validate().

HTH


9
2018-01-04 17:34



Llamar explícitamente Page.Validate () en el lado del servidor.

O el sobrecargado Page.Validate (cadena) para apuntar a uno de tus grupos de validación

Actualizar:

Olvidé, después de ejecutar Validate (..), verificar Page.IsValid propiedad - Depende de usted detener la presentación de la página si esta propiedad == false.


15
2018-01-04 17:34



Si usa controles de validación estándar, los datos siempre se vuelven a verificar en el servidor, incluso si se especifica la validación del lado del cliente.

Vea la nota en este artículo justo después de la figura 2 :, que dice:

Comprobación doble de la validación del lado del cliente

Un punto interesante es que incluso   aunque los datos del formulario están validados en   el cliente (eliminando la necesidad de   solicitudes adicionales y respuestas   del servidor para validar los datos),   los datos ingresados ​​se vuelven a verificar en el   servidor. Después de verificar los datos   el cliente y encontrado válido, es   vuelto a verificar en el servidor usando el mismo   reglas de validación Estas son reglas que   estableces para garantizar contra algunos   programador complicado por ahí tratando de   omitir el proceso de validación por   publicando la página en el servidor como si   pasó la validación

http://msdn.microsoft.com/en-us/library/aa479013.aspx

Sin embargo, puede forzar la validación en el servidor llamando a Page.Validate ()


3
2018-01-04 17:36



Romano,

Puede usar el validador personalizado de ASP.net para proporcionar un método de validación tanto para el cliente como para el servidor. De esta forma, si deshabilita el js, debe presionar el método de validación del servidor. En este ejemplo, la función "ClientValidate" se definiría en un bloque de JavaScript en su página, y la función "ServerValidate" existiría en su archivo codebehind.

<asp:textbox id="textbox1" runat="server">
<asp:CustomValidator id="valCustom" runat="server"
    ControlToValidate="textbox1"
    ClientValidationFunction="ClientValidate"
    OnServerValidate="ServerValidate"
    ErrorMessage="*This box is not valid" dispaly="dynamic">*
</asp:CustomValidator>

3
2018-01-04 17:38



¡Encontré la respuesta! La respuesta es usar Page.Validate () y luego verificar por Page.IsValid para verificar si la validación fue válida o no. Solo el uso de Page.Validate () no ayudó; el código procedió y no se detuvo.

Gracias chicos, romano


0
2018-01-04 18:31