Usuário com melhor resposta
Submetendo pesquisa sem perder dados da pesquisa

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
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
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 -
-
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
-