Pregunta

He estado jugando con el ASP.NET Marco de MVC y la única cosa que realmente me confunde es lo que yo estoy destinado a hacer del lado de servidor de validación de publicado los datos del formulario.Supongo que yo no después de volver a la misma URL, pero si no lo hago, ¿cómo puedo volver a mostrar el formulario con los datos introducidos y los mensajes de error?También, en donde debe la lógica de validación de ir?En el modelo o el controlador?Esta parece ser una de las pocas áreas donde los formularios web son mucho más fuertes (echo de menos los controles de validación).

¿Fue útil?

Solución

Es posible que desee echar un vistazo a ScottGu del último post para ASP.Net prev 5.Camina a través de un ejemplo de validación que es muy interesante:

http://weblogs.asp.net/scottgu/archive/2008/09/02/asp-net-mvc-preview-5-and-form-posting-scenarios.aspx

Otros consejos

He aquí un resumen de flujo de MVC:

  1. /nueva - hacer que su "Nuevo" punto de vista que contiene un formulario para que el usuario rellene
    • El usuario llena el formulario y se contabiliza a /crear
    • El post es dirigido a la acción de Crear en el controlador
    • En su método de acción, actualizar el modelo con los datos que se han publicado.
    • Su Modelo debe validar propio.
    • El Controlador debe leer si el modelo es válido.
    • Si el Modelo es válido, guardarlo en tu db.Redirigir a /show para representar la Vista presentación para el objeto.
    • Si el Modelo no es válido, guarde el formulario de valores y mensajes de error en la TempData, y redirigir a la Nueva acción de nuevo.Rellenar los campos del formulario con los datos de TempData y mostrar el mensaje de error(s).

La validación de marcos le ayudará a lo largo de este proceso.Además, creo que los ASP.NET MVC equipo es la planificación de un marco de validación para la siguiente vista previa.

Como puedo decirle a todos que todavía está tratando de averiguar la manera "estándar" de hacerlo.Que dijo que definitivamente echa un vistazo a Phil Haack y Scott Guthrie los últimos puestos en MVC y encontrará alguna información interesante sobre la forma en que lo hicieron.Cuando yo estaba jugando con ella por mí mismo he creado un ModelBinder para la LinqToSql clase de datos que me había generado.Usted puede comprobar fuera de este post para saber cómo armar un básico ModelBinder:

ASP.Net Cuaderno de Modelo MVC

El en su acción si se ha creado un "Producto" ModelBinder usted acaba de declarar que la acción así:

public ActionResult Nuevo Producto(prod)

Y el cuaderno de modelo se encargará de la asignación de los datos enviados a las propiedades de los objetos como el tiempo que hemos construido a la derecha de todos modos.

Después de que dentro de su GetValue() método que se puede aplicar lo de validación desea, si el uso de la excepción, de regex, o lo que puede hacer una llamada como:

(ModelStateDictionary_name).AddModelError("form_element_id", "entered_value", "error_message");

A continuación, puede simplemente tirar un <%= Html.ValidationSummary() %> en la vista para mostrar todos sus errores.

Para la validación del cliente acabo de utilizar jQuery.Después de obtener una muestra básico establecido a pesar de que usted puede comenzar a hacer algunas cosas interesantes que combina todo eso con Vistas Parciales y las llamadas Ajax.

Has echado un vistazo a esto?http://www.codeplex.com/MvcValidatorToolkit

Citado de la página

El Validador kit de herramientas proporciona un conjunto de validadores para la nueva ASP.NET MVC marco para validar los formularios HTML en el cliente y del lado del servidor utilizando los conjuntos de validación.

Tengo miedo de que alguien más MVC conocedores de que me tendría que hablar de donde en la arquitectura debe poner las cosas.

Estoy aprendiendo el marco de MVC también, así que no estoy seguro de cómo fuera de este, pero por lo que entiendo que tendría un formulario en una Vista de Edición.aspx.De esta forma, a continuación, publicar el controlador a otro método de acción, tales como Update() se pasa el contenido de la forma que se establece en Editar.aspx como parámetros.

Update(int id, string name, string foo)

Usted podría hacer la validación en el seno de ese método.Si todo es correcto,

return View("Item", yourObject)

Hay Castillo.Componentes.Validador módulo en el Castillo de proyecto.Es muy ágil y potente.Genera las reglas de validación basado en el modelo de atributos (o de cualquier otra fuente) e incluso capaz de generar JS validación mediante jQuery, Prototype Validación, fValidate y otros.Por supuesto, es aconsejable resumen validador de distancia detrás de IValidationEngine de la interfaz.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top