2010-01-04 52 views
6

Tengo un formulario web ASP.NET que quiero validar del lado del cliente y del lado del 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.ASP.NET Validación lado del servidor

Ayuda sería muy apreciada.

romana

+0

Puede darnos más información? Específicamente, ¿qué controles de validación usa? ¿Los validadores incorporados de ASP.NET? Si es así, ¿cuál de estos, está utilizando (por ejemplo, Custom Validator)? Algunos fragmentos de código pertinente siempre ayudan. Finalmente, ¿está usando paneles de actualización o algo así AJAX-y? –

+0

Usando los validadores regulares, no Custom Validator en absoluto. Nada AJAXy, sin paneles ... nada. simplemente una forma simple :) – Roman

Respuesta

9

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

HTH

15

Explícitamente llamar Page.Validate() en el lado del servidor.

O la sobrecargada Page.Validate(string) para orientar uno de sus grupos de validación.

Actualización:

me olvidaba, después de ejecutar Validar (..), comprobar el Page.IsValid property - le toca a usted para detener la presentación de la página de si esta propiedad == false.

+0

Hola, He intentado esto - Pero todavía no funcionó. Utilizo los validadores regulares de asp.net. incluso no el personalizado. cuando deshabilito javascript, simplemente se procesa, incluso si uso explícitamente Page.Validate(); – Roman

+0

Hmmmmm ... si no lo has hecho aún, prueba la versión sobrecargada. De lo contrario, ¿a qué método o evento llama a Page.Validate? –

+0

Eché de menos el bote en ese momento al olvidarme de Page.IsValid. –

3

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.

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

de doble control del lado del cliente Validación

Un punto interesante es que incluso aunque los datos del formulario es validado en el cliente (eliminando la necesidad de solicitudes y respuestas adicionales del servidor para validar los datos), los datos ingresados ​​se vuelven a verificar en el servidor . Después de que los datos estén marcados en el cliente y encontrados válidos, es vuelto a verificar en el servidor usando las mismas reglas de validación . Estas son las reglas que establece para asegurar contra algún programador engañoso intentando omitir el proceso de validación por publicando la página en el servidor como si pasara la validación.

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

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

3

romana,

Puede utilizar el validador personalizado ASP.net para proporcionar tanto una cliente y un método de servidor para la validación. 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> 
+0

Todos los Validadores de ASP.NET proporcionan validación del lado del cliente y del servidor, no solo el CustomValidator. –

0

¡Encontrará la respuesta! La respuesta es usar Page.Validate() y luego verificar la página.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, romana

Cuestiones relacionadas