Usuario
Mostrar confirmación en vista enviada desde controller.

Pregunta
-
Hola compañeros, tengo un problemita, quiero mostar un mensaje de confirmación asi como los de bootstrap, al momento de agregar un usiario con un controller.
Me explico: mostrar una alerta de confirmación creada con javascript o JQuery al momento de agregar al usuario, lo se hacer con angular pero mandarla directamente del controller al la vista, es donde tengo el problema, no se como hacerlo, espero me puedan ayudar.
Otra cosa que quisiera que pasara es que no me redireccione a ningún lado esa vista simplemente que muestre el mensaje y listo, sin redireccionar a otro lado, espero que sea posible realizar esa acción.- Editado Jesús Espinoza viernes, 9 de mayo de 2014 19:46
Todas las respuestas
-
Puedes simplemente inyectar un pedacito de script en la vista para que muestre el mensaje. Por ejemplo, en la vista (Razor) pon @ViewBag.Script y desde el controlador pásale un valor:
ViewBag.Script="<script type='text/javascript'>alert('Mensaje');</script>";
Evidentemente, en lugar de un simple "alert" puedes poner una llamada a alguna función de librería que saque un mensaje más sofisticado.
-
hola
pero podrias en la clase del modelo o quiza en el viewbag poner el mensaje y desde la vista si viene algo en esa propiedad renderizar el javascript que muestre el aler o no, peor que el codigo javascript quede en la view solo desde el controlador pones el texto a mostrar
algo como ser
desde el controlador
public class Controller{
public ActionResult NombreAction(..){
ViewBag.Message = "aqui el mensaje";
return View();
}
}
y en la view usarias
<script >
//resto del script si lo hay
@if(ViewBag.Message != ""){
alert('@ViewBag.Message');
}
</script>
o sea en la view defines condiciones para mostrar el mensaje
puedes usar un alert de javascript o renderizar uno de jquery
la idea es no mezclar codigo de script generandolo desde el controlador, que sea la view que defina como mostrar el mensaje
el controlador si define que texto mostrar, como comente podrias tambien poner la propeidad Message en una clase de modelo que uses asi no usas el ViewBag
Leandro Tuttini
Blog
Buenos Aires
Argentina -
-
Para el que lea este mensaje puede intentar con tempData, me gusta mas y se ve bien.
pongo el actionResult porque yo trabajo con modelo vista controlador 5. pero supongo que puede servir para escritorio.
public ActionResult nombreDelMetodo()
{
TempData["mensaje"] = "Aquí va el mensaje de confirmación que desea poner el programador";
TempData["tipo"] = "success";
return Content("nombreDelMetodo");}
-
Podes utilizar ajax
@using (Ajax.BeginForm("CrearUsuario", "Controlador", new AjaxOptions
{ HttpMethod = "Post", OnFailure = "alert('Mensaje Error')", OnSuccess = "alert('Mensaje ok')" }, new { id = "frmActualizarOrden", style = "height:100%" })) {
Los controlos del razor } en el controlador retornas [HttpPost] public ActionResult CrearUsuario(modelo) { try { Tu codigo de creacioón de usuario } catch (Exception ex) { return new HttpStatusCodeResult(404, ex.Message.Replace("\r\n", "")); } return new HttpStatusCodeResult(200); }
Att. Franklin Andino