2009-04-02 11 views
5

Digamos que tenemos una vista de edición para editar nuestros datos, y queremos que el usuario sepa el resultado de su edición, es decir. para confirmar que efectivamente se guardó con éxito en el Modelo.¿Cómo proporcionar comentarios de "éxito" de acción al usuario en ASP.NET MVC?

Una solución es asignar un mensaje a ViewData en el método de acción Editar controlador, y luego usar la Vista para mostrar el mensaje nuevamente al usuario.

p. Ej. En el método de acción Editar Controlador:

ViewData["EditResult"] = "All is well in the world."; 

... y en algún lugar en el Vista:

<%= ViewData["EditResult"] %> 

Esto es agradable y fácil, pero es ésta la mejor manera de proporcionar información desde el controlador a la ¿Ver? ¿Cuáles son algunas otras alternativas ya que parezco estar en el límite de poner cosas de tipo presentación en el Controlador?

Respuesta

1

Un enfoque muy simple sería pasar un booleano u otro indicador de estado a la vista como parte de los datos del modelo; la vista puede renderizar esa información como lo considere conveniente.

Alternativamente, es posible que desee considerar tener vistas separadas para el éxito frente a la falla, ya que es muy posible que esté presentando contenido totalmente diferente en cada caso.

+0

Gracias, he elegido su primera sugerencia y he añadido una propiedad booleana que se puede anular al Modelo para indicar el resultado de guardar. En el controlador, establecí el valor y en la vista agregué un código detrás del archivo, por lo que tengo una propiedad llamada "ResultMessage" que convierte el booleano en un mensaje adecuado. :) – saille

0

Normalmente tengo una acción Mostrar que muestra el estado del modelo en particular. Después de una actualización exitosa, me redirigiré a la acción Mostrar para esa instancia particular del modelo y mostraré la información actualizada. Tenga en cuenta que no hay ningún mensaje de "éxito", pero los cambios se reflejan en el estado del modelo actualizado. Esto es lo que normalmente trato de hacer: mostrar al usuario el resultado de su acción en lugar de un mensaje que indica que la acción fue exitosa.

Cuestiones relacionadas