none
Submetendo pesquisa sem perder dados da pesquisa RRS feed

  • Pergunta

  • Olá amigos, bom dia a todos!

    Gostaria de saber como me posso me desamarar de uma situação meio tensa!!! rsrs

    Lá vai!

    Tenho uma página index que trago meus registros, nela tenho dois campos para fazer filtro de registros, quando aciono esse botão de pesquisa, capturo o id do registro e envio a tela de edição, que me carrega os dados daquele registro, até de boa! :)

    Mas o que acontece na tela de edição tenho um botão para voltar (Que volta a página index) a tela de registros, que seria  +- assim:

    <%

     

    =Html.ButtonActionLink("btnVoltaIndex", "Voltar", "Index", "ControleXYZ")%>


    Quando eu aciono esse botão volto a tela de pesquisa, porem ai perco meus dados da pesquisa e retorno ao ponto inicial dessa tela.

    Gostaria de saber como faço para quando acionar esse botão, eu consiga retornar ao ponto especifíco da pesquisa ??

    Obrigado a todos





    Marcio
    terça-feira, 2 de fevereiro de 2010 13:16

Respostas

  • Você pode usar TempData["criterios"] = criterios;

    O TempData é um recurso especial do MVC para manter valores entre os requests.

    Ficaria tipo assim

    public ActionResult Pesquisa(Criterios crit)
    {
          TempData["criterios"] = crit;
    ...
    }


    = Html.ButtonActionLink( "btnVoltaIndex" , "Voltar" , "Index" , "ControleXYZ" , (Criterios)TempData["criterios"])%>

    public
     ActionResult VoltarParaTelaDeFiltro(Criterios crit)
    {
    RedirectToAction("Filtrar" , "NomeController" , crit);
    }


    • Marcado como Resposta Marcio Tavares quarta-feira, 3 de fevereiro de 2010 09:20
    terça-feira, 2 de fevereiro de 2010 22:50
    Moderador

Todas as Respostas

  • Olá Marcio,

    Para voltar ao ponto onde o usuário estava, você terá de repetir a pesquisa... Esse botão deve fazer apontar para a mesma Controller/Action que o botão que faz a pesquisa na outra página, passando os mesmos parâmetros, ou então, você cria uma Action específica na Controller dos detalhes, para redirecionar para a Controller/Action que o botão que faz a pesquisa na outra página.

    Algo como:

    public ActionResult VoltarParaTelaDeFiltro()
    {
        RedirectToAction("Filtrar", "NomeController", criteriosDoFiltro);
    }
    


    Uma outra alternativa (não muito boa) seria utilizar JavaScript e apenas simular um click no botão "Voltar" (Back) do navegador.


    Abraços,
    Caio Proiete



    Caio Proiete
    Microsoft MVP, MCT, MCPD, MCTS, MCSD
    http://www.caioproiete.com

    terça-feira, 2 de fevereiro de 2010 15:01
    Moderador
  • Entendi Caio, mas me diga uma coisa, como posso fazer para reter os valores dos campos de pesquisa da página do index, de forma que quando eu estiver na tela de edit, possa fazer esse direcionamento que você indicou?

    Muito obrigado.
    Marcio
    terça-feira, 2 de fevereiro de 2010 17:16
  • Você pode usar TempData["criterios"] = criterios;

    O TempData é um recurso especial do MVC para manter valores entre os requests.

    Ficaria tipo assim

    public ActionResult Pesquisa(Criterios crit)
    {
          TempData["criterios"] = crit;
    ...
    }


    = Html.ButtonActionLink( "btnVoltaIndex" , "Voltar" , "Index" , "ControleXYZ" , (Criterios)TempData["criterios"])%>

    public
     ActionResult VoltarParaTelaDeFiltro(Criterios crit)
    {
    RedirectToAction("Filtrar" , "NomeController" , crit);
    }


    • Marcado como Resposta Marcio Tavares quarta-feira, 3 de fevereiro de 2010 09:20
    terça-feira, 2 de fevereiro de 2010 22:50
    Moderador
  • Captei vossa mensagem John!!!

    vlw!
    Marcio
    quarta-feira, 3 de fevereiro de 2010 09:21