Estoy construyendo un sitio web público usando ASP.NET, como parte de la entrega necesito hacer un sitio de administración para la entrada de datos de las cosas que se muestran en el sitio público, me preguntaba qué técnicas o procedimientos usan las personas para validar las entradas usando ASP.NET MVC.¿Cuál es la mejor manera de implementar la validación de campo con ASP.NET MVC?
Respuesta
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));
}
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?
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:
¿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 :)
@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.
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.
@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.
@Chuck - No se preocupe. Para eso es SO. Aprendes algo y la persona que hace la pregunta aprende algo.
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.
¿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
:-)
hay algunas nuevas características de validación en la vista previa 5.
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),
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
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.
No sé cómo no obtuviste más ups. Esto es IMPRESIONANTE, ¡gracias! –
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.
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.
- 1. ¿La mejor manera de implementar DropDownList en ASP.NET MVC 2?
- 2. ¿Cuál es la mejor manera de implementar controles de usuario en ASP.NET MVC?
- 3. ¿Cuál es la mejor manera de implementar una API en ASP.NET usando MVC?
- 4. cuál es la mejor manera de implementar FTP en un sitio asp.net mvc
- 5. ¿Cuál es la mejor manera de implementar la paginación usando Spring MVC con mysql
- 6. ¿Cuál es la mejor manera de implementar protocolos?
- 7. ¿Cuál es la mejor manera de implementar params en JavaScript?
- 8. ¿Cuál es la mejor manera de implementar una aplicación Pylons?
- 9. ¿Es MVC la mejor manera de codificar aplicaciones asp.net?
- 10. ¿Cuál es la mejor manera de implementar un "temporizador"?
- 11. Cuál es la mejor manera de implementar un campo de contador en MySQL
- 12. ¿Cuál es la mejor manera de implementar una arquitectura RESTful en .NET hoy?
- 13. ¿Cuál es la mejor manera de trabajar con el encabezado Expires en ASP.NET MVC?
- 14. ¿Cuál es la mejor manera de cargar archivos con ASP.NET MVC 2?
- 15. ¿Cuál es la mejor/más limpia forma de implementar las pruebas A-B en asp.net mvc?
- 16. ASP.NET MVC: ¿Es suficiente la validación de anotación de datos?
- 17. ¿Cuál es la mejor manera de implementar una búsqueda de texto completo para una aplicación ASP.NET MVC?
- 18. ¿La mejor manera de implementar la aceleración de solicitudes en ASP.NET MVC?
- 19. Manera elegante de combinar la validación de ASP.NET con JQuery
- 20. ¿Cuál es la mejor manera de hacer la validación de entrada en C++ con cin?
- 21. ¿Cuál es la mejor manera de enviar un correo electrónico HTML de Asp.net MVC?
- 22. ¿Cuál es la mejor manera de implementar servicios en segundo plano para una aplicación ASP.NET?
- 23. ¿Cuál es la mejor manera de aprender jQuery?
- 24. ¿Cuál es la mejor manera de configurar el acceso a datos para un proyecto ASP.NET MVC?
- 25. ¿Cuál es la mejor manera de manejar múltiples acciones?
- 26. ¿Cuál es la manera de implementar la funcionalidad Guardar/Cargar?
- 27. ¿Cuál es la mejor manera de implementar Singleton Design Pattern en C# con restricción de rendimiento?
- 28. ¿Cuál es la mejor manera de ampliar la funcionalidad?
- 29. ¿Cuál es la mejor manera de implementar la detección de colisiones unidimensionales?
- 30. ¿Cuál es la mejor manera de implementar el cifrado bidireccional con PHP?
y ahora (con asp.net mvc2 vista previa 2+) ¡la validación de jquery está integrada con la validación del modelo! –