none
Redirecionar para uma Action RRS feed

  • Pergunta

  • Estou com um problema no asp.net mvc 4. Tenho uma Controller Noticias, nela contém uma action Listar e Update, quando vou salvar o conteúdo na minha View(Update) salva com sucesso porém peço para redirecionar para minha Lista usando RedirectToAction("Lista"), ele redireciona, o problema é que na minha url ainda fica como se eu estivesse no Update.
    Desde já agradeço pela compreensão.
    domingo, 21 de abril de 2013 02:27

Todas as Respostas

  • Deixa eu ver se entendi: Seu redirect funciona, ele vai para /Noticias/Lista, porém sua URL fica /Noticias/Update, é isso?

    Se puder, posta seu código!

    Abs

    domingo, 21 de abril de 2013 02:54
  • public ActionResult Lista()
            {
                contatosEntities dao = new contatosEntities();
                return View(dao.contato.ToList());
            }
    
    [HttpPost]
            public ActionResult Update(contato model)
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        contatosEntities dao   = new contatosEntities();
                        dao.Entry(model).State = System.Data.EntityState.Modified;
                        dao.SaveChanges();                    
                    }
                    catch (Exception ex)
                    {
                        TempData["Erro"] = "Erro ao efetuar atualização do registro: " + ex.Message;
                    }
                }
                return RedirectToAction("Lista");
            }
    É isso mesmo que vc falou, mas fica com o parâmetro  /Noticias/Update/1
    • Editado Thiago_Porto domingo, 21 de abril de 2013 02:58 alteração
    domingo, 21 de abril de 2013 02:56
  • Debugando, não ocorre nenhum erro ? Coloca um breakpoint desde o inicio e veja se algo acontece! 

    Se você explicitar o controller também ocorre isso: 

    return RedirectToAction("Lista", "Noticias");

    Ele salva corretamente o registro, não ocorre nenhum erro no código?

    Abs

    domingo, 21 de abril de 2013 03:03
  • Já tentei dessa forma e acontece a mesma coisa, também adicionei um breakpoint e ocorre tudo normal salva no banco, o problema é só a url que não muda.
    domingo, 21 de abril de 2013 03:05
  • Onde você trata essa sua TempData? e se você alterasse seu código para o seguinte:

    [HttpPost]
            public ActionResult Update(contato model)
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        contatosEntities dao   = new contatosEntities();
                        dao.Entry(model).State = System.Data.EntityState.Modified;
                        dao.SaveChanges();                    
                        return RedirectToAction("Lista");
                    }
                    catch (Exception ex)
                    {
                        TempData["Erro"] = "Erro ao efetuar atualização do registro: " + ex.Message;
                    }
                }
                return View(model);
            }

    Ou seja, se tudo der certo, já redireciona. Senão retorna para a View de atualização /Noticias/Update novamente!

    Aparentemente vai dar na mesma, mas faça um teste!

    Abs

    domingo, 21 de abril de 2013 03:10
  • Continua da mesma forma.
    domingo, 21 de abril de 2013 03:13
  • Certo, vamos testando rs.

    Na sua view verifique se está assim:

    @using (Html.BeginForm("Update", "Noticias"))
    ...

    Se estiver assim e nada der certo, tente usar o redirecionamento permanente:

    return RedirectToActionPermanent("Lista", "Noticias");

    Abs

    domingo, 21 de abril de 2013 03:17
  • Continua da mesma forma, testei em outra aplicação que tenho antiga e percebi que ela faz da mesma forma.
    domingo, 21 de abril de 2013 03:20
  • Você possui alguma rota personalizada? Esse projeto é mobile?

    Veja esta questão: http://stackoverflow.com/questions/8885979/redirecttoaction-does-not-change-the-url

    abs

    domingo, 21 de abril de 2013 03:22
  • Não tenho rota personalizada, e sim esse projeto esta sendo desenvolvido usando o jquery mobile
    domingo, 21 de abril de 2013 03:23
  • Não deu certo, mas percebi que quando clico no botão de salvar mostra a url que quero e volta para a que estou no momento, mas de forma rápida, quase não se percebi.
    domingo, 21 de abril de 2013 03:27