Array
(
)

Recarregar página com MVC

Pjava
   - 08 out 2014

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.
#Códigovar 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) {
}
})
}

Joel Rodrigues
   - 08 out 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.

Pjava
   - 08 out 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.

Pjava
   - 08 out 2014

E como eu faço isso:

Citação:

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.

Pjava
   - 08 out 2014

Fiz assim e funcionou: window.location.href = '/CadastroCargo/CadastroCargo';

Joel Rodrigues
   - 08 out 2014

Vai ser mais ou menos assim:
#Código$("#minhaDiv").load("/CadastroCargo/CadastroCargo");

Pjava
   - 08 out 2014

Assim deu certo:

#Códigowindow.location.href = '/CadastroCargo/CadastroCargo';