2008-08-19 13 views

Respuesta

26

Tome una mirada en el JQuery Validation plugin este plugin es increíble, es fácil de implementar y tiene todas las características que pueda necesitar, incluida la validación remota a través de AJAX.

también un método controlador MVC muestra se puede encontrar here que básicamente utiliza el tipo de acción JsonResult como:

public JsonResult CheckUserName(string username) 
{ 
    return Json(CheckValidUsername(username)); 
} 
+3

y ahora (con asp.net mvc2 vista previa 2+) ¡la validación de jquery está integrada con la validación del modelo! –

1

mi manera:

estoy siguiendo el ejemplo mostrado en el controlador de la cuenta que se envía con la versión preliminar 4, donde el campo es comprobar en el controlador y, si se encuentra un error a continuación, una serie de errores de cuerda es agregada para más tarde mostrar en la misma vista que comenzó la solicitud.

También he estado siguiendo los pensamientos de Stephen Walther on MVC y creo que this post es genial para volver a llenar los campos con los datos enviados para que se modifique antes de volver a enviarlos.

¿Qué usan?

5

Me gusta usar la biblioteca LiveValidation dentro de mis aplicaciones ASP.NET MVC. Con él, pude configurar una forma de hacer la validación en el cliente y en el servidor. De esta forma, el usuario sabrá que algo está mal incluso antes de enviar el formulario y luego usará la funcionalidad del lado del servidor para los otros casos periféricos.

Empecé con este post que hace un trabajo muy bueno de como configurar una configuración similar:

Model-based Client-side Validation for ASP.NET MVC

1

¿Has mirado en los controles previstos con el AjaxToolKit? He usado MaskedEditExtender y ValidatorCalloutExtender y he estado muy satisfecho con los resultados.

@Dale - ¡gracias por corregirme en eso! No estaba al tanto de eso (recién comencé a usar el kit de herramientas la semana pasada). No tenga en cuenta mi sugerencia :)

6

@Chuck: aún no puede usar los controles AjaxToolKit en ASP.NET MVC. Solo funcionan en el modelo de postback de página ASP.NET.

Actualización:

Al 20 de Ago, 2008, puede utilizar los archivos de secuencia de comandos sólo del Ajax Control Toolkit dentro del marco ASP.NET MVC. Aquí hay un enlace al release.

También, here is a tutorial sobre cómo usarlos para crear un calendario emergente de Stephen Walther.

Solo quiero asegurarme de que a todos se les dé la información correcta, si leen este hilo.

0

Dale Ragan escribió:

no puede utilizar los controles AjaxToolKit en ASP.NET MVC

¿Cómo se maneja en AJAX desbordamiento de pila? ¿JQuery lo hace? En su publicación Coding Horror Secrets of the JavaScript Ninjas Jeff escribió sobre el uso de JQuery mientras escribía Stack Overflow.

Seguramente no lo codificaron a mano. Lo hice una vez con todo el XMLHttpRequest JavaScript cuando el término "AJAX" se popularizó en 2005. Fue una pesadilla.

1

@Zack: Yeap, también he leído esa publicación y, de acuerdo con esa publicación, SO usa jQuery como su biblioteca de JavaScript. No puedo hablar en nombre del equipo de SO, pero creo que es más que probable que estén usando las características de ajax dentro de jquery para manejar sus solicitudes de ajax. En realidad, no es tan malo la codificación manual si utiliza una biblioteca de JavaScript como jQuery, Prototype y MooTools. Luego usa el nuevo valor de retorno JsonResult ActionResult para sus acciones y realiza solicitudes ajax contra ellas. Estas bibliotecas encapsulan los objetos XmlHttpRequest por usted y hacen que sea más fácil hacer que las llamadas ajax y el navegador sean seguros.

0

@Chuck - No se preocupe. Para eso es SO. Aprendes algo y la persona que hace la pregunta aprende algo.

1

Puede usar el .net validation framework en codeplex si desea la validación del cliente/servidor. Genera código para el complemento de validación jQuery basado en reglas definidas en el modelo. Además, si usa la funcionalidad "avanzada" de la infraestructura, puede controlar manualmente la configuración de jQuery validate plugin. Pagar el mvc quickstart.

0

¿Cómo se maneja AJAX en Stack Overflow? ¿JQuery lo hace?

  • Haga clic derecho en la página
  • Busque 'Ver código fuente' en el menú emergente
  • Haga clic en él

:-)

1

Uso un híbrido de validación del lado del cliente y validación del lado del servidor.

Para la validación del lado del cliente, el enfoque descrito en answer by Daniel Pollard parece correcto. La validación del lado del cliente no es obligatoria, pero proporcionará al usuario una experiencia más agradable y mucho más receptiva.

La validación del lado del servidor, por otro lado, debe ser obligatoria: nunca confíe en la información del cliente. Definitivamente examinaría las capacidades proporcionadas por el marco ASP.NET MVC en la Vista previa 5 (como se describe en answer by Matt Hinze),

1

Mi forma favorita de realizar validación de cliente y servidor utilizando atributos basados ​​en modelos.Escribí un breve post sobre esto y liberado el código fuente, así, que, básicamente, le permitirá crear una clase como esta



class User { 

    [Required] 
    public string Name{get;set;} 

    [Email][Required] 
    public string Email {get;set;} 
} 

Y el código Javascript apropiada será generada para realizar la validación del cliente, así como en servidor El corredor de validación lateral validará su formulario enviado.

leer el post sobre here

6

OMI utilizando XVal con jQuery y DataAnnotationsModelBinder es la mejor combinación.

A veces, sin embargo, existen reglas de validación que no se pueden verificar por completo en el lado del cliente, por lo que debe utilizar la validación remota del lado del cliente.

me di cuenta de manera de poner en práctica de forma genérica la validación del lado del cliente remoto con XVal/jQuery.validate modo que

  • Las reglas de validación se mantienen únicamente en su modelo de ASP.NET MVC
  • Escribes cada regla de validación solo una vez, y solo en código C# fácilmente comprobable. No hay JavaScript u otra contraparte del lado del cliente.
  • No hay necesidad de bifurcar o modificar xval o jquery.validate
  • Todo lo que tiene que hacer para cada nueva regla de validación de formulario remota es derivar de la clase base que se muestra en este artículo.

Escribí un blog article sobre esto describiendo todos los detalles.

+0

No sé cómo no obtuviste más ups. Esto es IMPRESIONANTE, ¡gracias! –

0

Si desea continuar con la funcionalidad lista para usar, pero necesita extenderla, consulte my answer here a una pregunta sobre IDataError.

Básicamente uso anotaciones de datos y un encuadernador para una lógica más complicada. He encontrado que es una manera bastante limpia y me permite permanecer dentro de los límites de lo que MS está proporcionando.

Explicaré cómo usar un encuadernador para agregar una verificación de "nivel de clase" de su modelo sin tener que usar IDataError, que como ha visto aquí puede ser bastante torpe. Aún le permite usar atributos [obligatorios] o cualquier otro atributo de validación personalizado que tenga, pero le permite agregar o eliminar errores individuales del modelo. Para obtener más información sobre cómo usar las anotaciones de datos, recomiendo this post from Scott Gu.

0

Una de las formas de implementar la validación en ASP.NET MVC es usar Anotaciones de datos junto con la validación del lado del cliente. Este article muestra cómo podemos hacer eso para las clases de modelo generadas por el marco de entidad.

Cuestiones relacionadas