none
Pasar el mensaje resultado de un Jsonresult a una alert de Respuesta en la View RRS feed

  • Pregunta

  • Buenos Dias Queridos Colegas:

    Tengo una pequeña consulta

    Deseo que pasar un mensaje de mi Jsonresult a una alert en la View, agradezco su amables aportes

    este es mi JsonResult

                                                              

    [HttpPost]
            public JsonResult SaveCuentas([Bind(Exclude = "Id")] Cuenta objCuen)

            {
                string msg;

                objCuen.Idtcuen = Convert.ToInt32(Request.Form["idticuent"]);
                objCuen.Idcuenta = Convert.ToInt32(Request.Form["idcuenta"]);
                objCuen.Codigo_Empresa = Convert.ToInt32(Session["cod_empr"]);
                objCuen.Nivelcuen = Convert.ToInt32(Request.Form["idnivel"]);
                objCuen.idnat = Convert.ToInt32(Request.Form["idtnatu"]);
                objCuen.idimp = Convert.ToInt32(Request.Form["idimp"]);
                objCuen.Nombre_cuenta = Request.Form["nomcuenta"].ToString();
                objCuen.Maneja_tercero = Convert.ToBoolean(Request.Form["manejter"]);
                objCuen.Maneja_CC = Convert.ToBoolean(Request.Form["manejaCC"]);
                objCuen.Mostrar_cuenta = Convert.ToBoolean(Request.Form["mostrarCu"]);
                objCuen.Estado = true;
                objCuen.Creado_Por = Session["Session_Usuario"].ToString().Trim();
                objCuen.Fecha_Creado = DateTime.Now;
                _datos.Cuentas.InsertOnSubmit(objCuen);


                try
                {
                    _datos.SubmitChanges();



                    msg = "Cuenta Creada con Exito";
                }

                catch
                {
                    msg = "La cuenta que intenta crear ya Existe para esta Empresa";
                }

                Session["msg"] = msg;


                return Json(msg, JsonRequestBehavior.AllowGet);
            }

    y este mi ajax que previamente lo invoca y al cual necesito que el momento de realizar la accion de gurdado me pasa el msg a un alert, este es mi script que invoca previamente mi metodo de guardado

                    

    <script>
       function InvocarSCuenta(){

           $.ajax({
            type: "POST",
            traditional: true,
            async: false,
            cache: false,
            url: '@Url.Action("SaveCuentas","Operativo")',
            context: document.body,
            data: {
                idticuent: $("#idticuent").val(),
                idcuenta: $("#idcuenta").val(),
                idnivel: $("#idnivel").val(),
                idtnatu: $("#idtnatu").val(),
                idimp: $("#idimp").val(),
                nomcuenta: $("#nomcuenta").val(),
                manejter: $("#manejter").is(":checked"),
                manejaCC: $("#manejaCC").is(":checked"),
                mostrarCu: $("#mostrarCu").is(":checked")
            },
            success: function (result) {
                $("#resultado").html('');

                 alert(result.msg)
            },
            error: function (xhr) {
                //debugger;
                console.log(xhr.responseText);
                 alert(result.msg)
            }
        });
    }
    </script>


    Carlos Alberto Hern&amp;amp;amp;amp;#225;ndez R. CEO -Xtreme Business Solutions Movil: 3102334026 Bogota- Colombia

    domingo, 2 de abril de 2017 5:55

Respuestas

  • Mucha gente cree que los métodos de acción tienen que devolver necesariamente un objeto que herede de ActionResult, como por ejemplo un JsonResult. Sin embargo, también pueden devolver tipos simples, como por ejemplo un string. Y para este caso concreto, en el que solo devuelves un string, es superfluo serializar ese string dentro de un Json para luego tenerlo que deserializar otra vez antes de mostrar el alert. Puedes sencillamente devolver el string:

    [HttpPost]
    public string SaveCuentas([Bind(Exclude = "Id")] Cuenta objCuen)
    {
        string msg;
        .....
        msg = ...;
        .....
        return msg;
    }

    Y después lo pasas directo al alert:

             success: function(result) {
                 .....
                 alert(result);
             },

    domingo, 2 de abril de 2017 6:20

Todas las respuestas

  • Carlos Alberto Hernandez R,

    No entiendo la duda que presentas, lo que mencionas en el post es lo que hace el código que adjuntas, ¿obtienes algún error?, aunque falta el símbolo de punto y coma al final de la instrucción creo que no es impedimento para mostrar el mensaje que envía el método SaveCuenta().


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    domingo, 2 de abril de 2017 6:16
  • Mucha gente cree que los métodos de acción tienen que devolver necesariamente un objeto que herede de ActionResult, como por ejemplo un JsonResult. Sin embargo, también pueden devolver tipos simples, como por ejemplo un string. Y para este caso concreto, en el que solo devuelves un string, es superfluo serializar ese string dentro de un Json para luego tenerlo que deserializar otra vez antes de mostrar el alert. Puedes sencillamente devolver el string:

    [HttpPost]
    public string SaveCuentas([Bind(Exclude = "Id")] Cuenta objCuen)
    {
        string msg;
        .....
        msg = ...;
        .....
        return msg;
    }

    Y después lo pasas directo al alert:

             success: function(result) {
                 .....
                 alert(result);
             },

    domingo, 2 de abril de 2017 6:20
  • Muchas gracias Alberto tendré en cuenta tu recomendación de ahora en adelante

    Saludos


    Carlos Alberto Hern&amp;amp;amp;amp;#225;ndez R. CEO -Xtreme Business Solutions Movil: 3102334026 Bogota- Colombia

    domingo, 2 de abril de 2017 17:08