Recarregar página com MVC
Fiz uma função na model e a chamada na controller. Aí, passo para o jquery e o comando de gravar no BD é excutado com êxito. Acontece, que quando eu termino de gravar, a tela continua com as informações anteriores, ou seja, os textbox preenchidos, os checkbox's checados. Como eu faço para após a gravação no BD(sucesso do ajax) eu recarregar a página ou os campos alterados somente? Abaixo minha chamada jquery. O alerta com a mensagem pode ser desconsiderado, se necessário.
var checkedItemsUn = {}, checkedItemsMot = {}, checkedItemsPdv = {}, counter = 0; function Gravar() { $("#check-list-box li.active").each(function (idx, li) { checkedItemsUn[counter] = $(li).text(); counter++; }); counter = 0 $("#check-list-box-mot li.active").each(function (idx, li) { checkedItemsMot[counter] = $(li).text(); counter++; }); counter = 0 $("#check-list-tipo li.active").each(function (idx, li) { checkedItemsPdv[counter] = $(li).text(); counter++; }); counter = 0 str = ""; $.ajax({ url: '/CadastroCargo/GravaResponsavel', datatype: 'json', contentType: 'application/json;charset=utf-8', type: 'POST', data: JSON.stringify({ _responsavel: $('#txtResponsavel').val(), _ativo: $('#ckbAtivo').prop("checked"), _Un: checkedItemsUn, _motivo: checkedItemsMot, _pdv: checkedItemsPdv, _nivel: $('#cbxNivelResp').val() }), success: function (data) { str += '<div class="alert alert-success col-md-6">'; str += '<button type="button" class="close" data-dismiss="alert"></button>'; str += '<h4>Operação realizada com sucesso!</h4>'; str += 'Registro gravado no banco de dados com sucesso.'; str += '</div>'; $('#alerta').html(str); str = ""; }, error: function (error) { } }) }
Pjava
Curtidas 0
Respostas
Joel Rodrigues
08/10/2014
Você pode:
1) redirecionar para uma outra página (com uma mensagem de sucesso, por exemplo, ou para a home);
2) usar o método load da jQuery para recarregar a view dentro de uma div, fazendo uma chamada assíncrona à action que chama essa mesma tela.
1) redirecionar para uma outra página (com uma mensagem de sucesso, por exemplo, ou para a home);
2) usar o método load da jQuery para recarregar a view dentro de uma div, fazendo uma chamada assíncrona à action que chama essa mesma tela.
GOSTEI 0
Pjava
08/10/2014
Ok, redirecionar para outra página já estava, mas o cara quer que fique na mesma, porque o usuário fará vários cadastros no mesmo e para ele ir para a Home e depois voltar é mais trabalhoso e nesse aspecto concordo, por isso o post.
GOSTEI 0
Pjava
08/10/2014
E como eu faço isso:
usar o método load da jQuery para recarregar a view dentro de uma div, fazendo uma chamada assíncrona à action que chama essa mesma tela.
usar o método load da jQuery para recarregar a view dentro de uma div, fazendo uma chamada assíncrona à action que chama essa mesma tela.
GOSTEI 0
Pjava
08/10/2014
Fiz assim e funcionou: window.location.href = '/CadastroCargo/CadastroCargo';
GOSTEI 0
Joel Rodrigues
08/10/2014
Vai ser mais ou menos assim:
$("#minhaDiv").load("/CadastroCargo/CadastroCargo");
GOSTEI 0
Pjava
08/10/2014
Assim deu certo:
window.location.href = '/CadastroCargo/CadastroCargo';
GOSTEI 0