Usuário com melhor resposta
RenderPage atualizar uma Section.

Pergunta
-
Boa tarde,
tenho o seguinte cenário.
Na Div Content tenho um botão que executa uma requisicão AJAX com UpdateTargeID = "DIVAJAX" preenchendo um @WebGrid, onde tenho um botao detalhes na primeira coluna, ao clicar no botão detalhes o seguinte código é executado afim de adicionar uma Partial View a Section Exibir_Detalhes
@if (gridProdutos.HasSelection) { @section Exibir_Detalhes{ @RenderPage("~/Views/Produto/_DetalhesProduto.cshtml", new { Produto = gridProdutos.SelectedRow }) } }
Porém, nada acontece quando clica em selecionar, caso eu mande carregar o PartialView dentro da DIVAJAX, funciona perfeito ou se eu tirar o UpdateTargetID = "DIVAJAX" também funciona, porém, sempre ocorre o POST.
Como poderia ao final do código que faz o RenderPage em uma section fazer a Section/DIV atualizar.Obrigado.
- Editado eeeeeeeeeeeeee5 quarta-feira, 13 de junho de 2012 15:29
Respostas
-
Tenta assim:
$.post("http://localhost:58205/home/Detalhes/", {idDoProduto : 1}, function(hmtl)
{
//atualiza o html na div de detalhes
});
[HttpPost] public ActionResult Detalhes(int idDoProduto) { return View("Detalhes", _repositorio.GetById(idDoProduto)); }
http://www.linkedin.com/pub/murilo-kunze/44/191/455
- Editado Murilo Kunze quarta-feira, 13 de junho de 2012 16:49
- Marcado como Resposta eeeeeeeeeeeeee5 quarta-feira, 20 de junho de 2012 17:04
Todas as Respostas
-
Não sei se entendi direito mas se entendi, acho que não da para fazer isso..
Porque você não pega o html da view com ajax através do botão de detalhes e atualiza na div de detalhes?
http://www.linkedin.com/pub/murilo-kunze/44/191/455
- Editado Murilo Kunze quarta-feira, 13 de junho de 2012 16:31
-
Somente para esclarecer um pouco mais, está 'funcionando' a Partial View está indo carregando e tudo so que porém não é renderizado na tela, por que a DIV de detalhes não fez um 'update'.
Eu pensei em fazer algo como o que você falou de fazer este link gerar ã Partial View, pegar o HTML de retorno e colocar dentro de detalhes com ReplaceWith(), porém, como este botão é do próprio grid eu somente sei utilizar ele desta forma.
@if (gridProdutos.HasSelection) { @section Exibir_Detalhes{ @RenderPage("~/Views/Produto/_DetalhesProduto.cshtml", new { Produto = gridProdutos.SelectedRow }) } }
E o que eu preciso é que quando rodar este RenderPage a section Exibir_detalhes renderiza os dados. -
Tenta assim:
$.post("http://localhost:58205/home/Detalhes/", {idDoProduto : 1}, function(hmtl)
{
//atualiza o html na div de detalhes
});
[HttpPost] public ActionResult Detalhes(int idDoProduto) { return View("Detalhes", _repositorio.GetById(idDoProduto)); }
http://www.linkedin.com/pub/murilo-kunze/44/191/455
- Editado Murilo Kunze quarta-feira, 13 de junho de 2012 16:49
- Marcado como Resposta eeeeeeeeeeeeee5 quarta-feira, 20 de junho de 2012 17:04
-
Murilo, obrigado pela ajuda, porém também nào atualizou.
Tentei fazer até de outras formas seguindo o seu conceito e também não consegui fazer esta alteração.
- Editado eeeeeeeeeeeeee5 segunda-feira, 18 de junho de 2012 13:26
-
-
A chamada está passando pela action?
O retorno do post é o html da action Detalhes?
Está ocorrendo algum erro de js?
Como você está fazendo para atualizar a div com o retorno do post?
http://www.linkedin.com/pub/murilo-kunze/44/191/455
Esta passando pela Action.
É o HTML
Não.
Estou alterando que estou achando que a falha está aqui.
-
Já tentou usar
return PartialView("div",object); //renderizar uma view dentro da div
return Content("texto"); //renderizar texto dentro da div
Não esqueça de marcar o post como útil caso tenha te ajudado.
- Editado Marco Souza quinta-feira, 21 de junho de 2012 20:23