mvc mostrar mensajes mensaje confirmacion alerta c# asp.net asp.net-mvc modelstate

c# - mostrar - mensajes en mvc



Mensajes de éxito en lugar de mensajes de error de estado modelo (3)

Debe implementar algo como el patrón POST / Redirect / GET y "redirigir" a otra vista al final de sus métodos de acción después de que todas las validaciones hayan sido verificadas y todo se haya ejecutado correctamente. Puede pasar una instancia de objeto completa a la vista de destino o simplemente pasa un mensaje de texto sin formato, o puede extraer el texto en la Vista de destino desde web.config o desde el archivo de recursos.

Por ejemplo, tengo una vista en la carpeta Compartida llamada "ChangeSuccess.aspx" a la que redirijo para todas mis ediciones y creaciones exitosas.

Usted "redirecciona" como este

return View("ChangeSuccess", objectInstance);

(nota: en realidad no redirige, ver comentarios)

Para mensajes de error, fallas de validación, etc.

ModelState.AddErrorMessage("Fool!");

Pero, ¿dónde coloca las respuestas de éxito como "Usted transfirió con éxito una gran cantidad de dinero a su ex". + "Tu saldo es ahora cero". Todavía quiero establecerlo en el nivel del controlador y preferiblemente de manera clave-valor, de la misma manera que los mensajes de error pero sin invalidar el estado del modelo.

¿Cómo se hace esto generalmente? ¿Ver datos?


Rellenaré TempData ["éxito"] (o la clave que quiera darle) con el mensaje que quiero mostrar en el controlador, luego redirigir apropiadamente (por ejemplo, si edito un usuario, redirigiré nuevamente a la lista de usuarios) . Esto se basa en el patrón POST / Redirect / GET, que es una buena práctica de todos modos.

TempData["success"] = "Your Balance is now zero";

En la página maestra tengo una sección que verifica esa variable y muestra el mensaje en un div de estilo agradable. Algo como (puede que no sea 100% correcto):

<% if(TempData["success"] != null) { %> <div id="SuccessMessage"><%= Html.Encode(TempData["success"]) %><div> <% } %>


Supongo que podría comprobar el estado del modelo y establecer una variable en su modelo ...

public ActionResult MyAction(MyEntity model) { //Here would be some validation, which returns with ModelState errors //Now set the validity of the modelstate as the IsValid property in your entity model.IsValid = ModelState.IsValid; return View(model); }

En su opinión ...

<% if(Model.IsValid) { %> <p>You successfully transfered your balance to your ex.</p> <% } %>

Edit: Dada tu pregunta actualizada, creo que estás pensando en tomar el enfoque equivocado. Me gustaría estar de acuerdo con las otras respuestas y seguir un patrón de PRG . Esto definitivamente tiene más sentido que intentar agregar un error falso.