none
Parametro de respuesta de Javascript RRS feed

  • Pregunta

  • saludos, nuevamente con el tema de javascript

    tengo la siguiente dificultad: continuo haciendo un login de usuario y tengo los siguientes controladores:

    public ActionResult Index()
            {
                return View();
            }

            [HttpPost]
            public ActionResult Index(Login login)
            {
                EmpleadosEntities pass = new EmpleadosEntities();

                var Existe = pass.SP_Autoriza(login.User_Id, login.PassWord).FirstOrDefault();

                if (Existe != null)
                {
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                     return Json("Usuario No Existe", JsonRequestBehavior.AllowGet);
                }
            }

    con la vista correspondiente; llamo un Javascript que contiene lo siguiente:

    $(document).ready(function (){
            $("#formLogin").submit(function (event) {
                User_Id = $("#User_Id").val();
                PassWord = $("#PassWord").val();
                Datos = { User_Id, PassWord };
                //event.preventDefault();
                $.ajax({
                    type: "POST",
                    url: "/Login/Index",
                    dataType: Text,
                    data: Datos      
                        
                    .success(function (result) {
                        alert('Usuario Registrado');
                        $("#User_Id").val("");
                        $("#PassWord").val("");
                    })

                   .fail(function (data) {
                       $("#User_Id").val("");
                       $("#PassWord").val("");
                       $('#Enviar').val('Add'); // se vuelve a recargar el mensaje para agregar nuevo Artista
                       alert('Usuario No Existe');
                       alert(result);
                    })

                })
            });
    });

    lo que funciona hasta cierto punto, es decir logre pasar los datos al controlador y este a traves de un SP en entity framework realiza la comprobación correspondiente.

    pero el problema es que en vez de mostrame los mensaje de éxito o error a través de una ventana de alert me aparece la siguiente pantalla:

    he intentado con diversas maneras, en el fail y en el success , pero ninguna funciona,  como podría corregir esto para solucionarlo???

    Gracias

    sábado, 14 de diciembre de 2019 2:23

Respuestas

  • saludos, ya lo resolví, intente rehaciendo la rutina de javascript, hasta que logre el paso de parámetros desde la vista hacia el controlador

    gracias

    • Marcado como respuesta Rodrigo Menares martes, 31 de diciembre de 2019 1:14
    martes, 31 de diciembre de 2019 1:14

Todas las respuestas

  • hola

    No puedes usar un RedirectToAction con el $.ajax, tienes que enviar el render de la view que genere el html

    Ademas no esta bueno mezclar tipos distintos de respuestas, o retornas html o retornas json

    cuando usas

        return Json("Usuario No Existe", JsonRequestBehavior.AllowGet);

    estas retornando un json con ese mensaje

    Si querias ver algo mas formateado deberias renderizar un html de una view con ese mensaje devolviendo una View

    Retornar un json va a ingresar por el "success" porque no es un error

    Si querias un error deveruas devolver un

        return new HttpStatusCodeResult(HttpStatusCode.InternalServerError, "Usuario No Existe");

     HttpStatusCodeResult In ASP.NET MVC

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 14 de diciembre de 2019 6:45
  • saludos

    probé los parámetros que están  en:   HttpStatusCodeResult In ASP.NET MVC

    tanto el resultado de esa operación como la descrita anteriormente aparecen en otra pantalla así : 


    sábado, 14 de diciembre de 2019 20:50
  • hola

    >>tanto el resultado de esa operación como la descrita anteriormente aparecen en otra pantalla así

    no entendi, como es eso de "otra pantalla" ?

    entiendo estas usando $.ajax por lo tanto no hay un submit

    quizas lo que te esta faltando es detener esa accion, intenta habilitando la linea

    event.preventDefault();

    asi no tendras la llamada al servidor

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 16 de diciembre de 2019 6:29
  • saludos, ya lo resolví, intente rehaciendo la rutina de javascript, hasta que logre el paso de parámetros desde la vista hacia el controlador

    gracias

    • Marcado como respuesta Rodrigo Menares martes, 31 de diciembre de 2019 1:14
    martes, 31 de diciembre de 2019 1:14