none
Retornar a vista Index RRS feed

  • Pregunta

  • En el controlador:

    [HttpPost]
    public JsonResult Create(FacturaM facturaM)
    {
        var message = "";
        if (!ModelState.IsValid)
        {
            message = "El modelo no es valido";
            return Json(message);
        }
        try
        {
         // Aqui actualizo la entidad
            db.SaveChanges();
            message = "La factura ha sido grabada correctamente...";
        }
        catch (Exception ex)
        {
            message = "Error al grabar en la base de datos";
        }
        return Json(message);
    }

    En la vista "Create":

    self.grabar = function (form) {
        $.ajax({
            url: "@Url.Action("Create")",
            type: "POST",
            data: ko.toJSON(this),
            contentType: "application/json",
            success: function (result) {
                alert(result);
            }
        });
    };

    Despues de grabar quiero que redireccione a la vista Index, graba todo bien pero se queda en la vista "Create"...

    Saludos, Limberg.

    viernes, 27 de septiembre de 2013 1:00

Todas las respuestas

  • hola

    hola

    el tema es que estas realizando una invocacion por medio de ajax, quizas debas usar

    success: function (result) {
                alert(result);

           location.assign('@Ulr.Action("Index")');

    }

    esto si tienes un action en el mismo controlador de nombre Index

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    viernes, 27 de septiembre de 2013 5:11
  • Leandro,

    Tengo un mensaje de error:

    Error HTTP 404.0 - Not Found

    Dirección URL solicitada: http://localhost:6882/Factura/@Ulr.Action("Index")

    Tuve que aplicar tu sentencia con una variacion : location.assign("Index");

    ¿Sabes por que no me funciono la sentencia original?

    Saludos y gracias...


    • Editado Limberg2 viernes, 27 de septiembre de 2013 7:16 m
    viernes, 27 de septiembre de 2013 7:16
  • mm que raro, pero si usas el Url.Action() tiene que devolver el link correcto

    esta claro que alli esta concatenando el

    http://localhost:6882/Factura/@Ulr.Action("Index")

    eso es incorrecto

    dejar fijo el Index no esta bien, como defines el location.assign() porque recuerda que es con comillas simples y el url.action con comillas dobles y no al contrario

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 27 de septiembre de 2013 10:18
  • Leandro,

    Intente como dijiste, cambiando comillas, y sigue el mismo error, solo funciona cuando lo implemento asi: location.assign("Index");

    Saludos, Limberg.

    viernes, 27 de septiembre de 2013 21:27
  • la verdad me parece muy raro

    si defines

    <a href='@Ulr.Action("Index")'> link </a>

    te genera un link en la pagina con la url correcta al action del controller ?

    porque si lo haces eso es lo mismo que estas realizando en el location.assign()

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    sábado, 28 de septiembre de 2013 10:58
  • Leandro:

    Solo me esta funcionando de esta forma:

    window.location.href = '@Url.Action("Index")';

    Saludos, Limberg.

    viernes, 4 de octubre de 2013 16:44
  • si esa forma tambien es valida

    hay varias formas de indicar al window.location que redireccion, esa es otra

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 5 de octubre de 2013 11:03