none
Mostrar confirmación en vista enviada desde controller. RRS feed

  • 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.
    viernes, 9 de mayo de 2014 15:39

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.

    viernes, 9 de mayo de 2014 15:56
  • 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

    viernes, 9 de mayo de 2014 18:30
  • Buenas Leandro, gracias por la ayuda pero no entiendo muy bien lo que me dices, me podrias pasar un ejemplo y otra cosa que quiero que suceda es que no me redireccione a otro lado simplemente que muestre el mensaje

    lunes, 12 de mayo de 2014 22:31
  • 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");            

            }

    lunes, 15 de enero de 2018 15:57
  • 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

    lunes, 15 de enero de 2018 20:01