Recarregar página com MVC

08/10/2014

0

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

Pjava

Responder

Posts

08/10/2014

Joel Rodrigues

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

08/10/2014

Pjava

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

08/10/2014

Pjava

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

08/10/2014

Joel Rodrigues

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

08/10/2014

Pjava

Assim deu certo:

window.location.href = '/CadastroCargo/CadastroCargo';
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar