none
ASP.NET MVC RRS feed

  • Pergunta

  • Pessoal como eu faço para o JSON disparar um evento Jquery para Exibir uma DIV.

    No meu controller eu faço assim:

    public ActionResult CadastraCliente(Cliente cliente)
            {

                if (ModelState.IsValid)
                {
                    ClienteNegocio clienteNegocio = new ClienteNegocio ();
                    clienteNegocio.Inserir(cliente);
                    ModelState.Clear();
                    return Json(new { success = true });
                    //string Message = "your message here !";
                    //return Json(Message, JsonRequestBehavior.AllowGet);
                }

    Já na minha View Eu faço isso:

         $(function () {
                            $.ajax({
                                url: '@Url.Action("CadastraCliente", "Cliente")',
                                    type: 'GET',
                                    dataType: 'json',
                                    success: function (data) {
                                        $('#dvSuccessAlert').show("slow");
                                    },
                                    error: function (data) {
                                    }
                                });
                            });

    Porem quando eu submeto o formulario a Tela aparece a seguinte mensagem:

    


    segunda-feira, 25 de novembro de 2013 21:20

Todas as Respostas

  • Eu queria que após a Inserção do Registro o Json execute a seguinte linha para mostrar uma div de sucesso:

    $('#dvSuccessAlert').show("slow");

    segunda-feira, 25 de novembro de 2013 21:23
  • Amilton, boa noite.

    Temos algumas situações interessantes no seu código:

    1 - Um request de criação de recurso, no seu caso inserção de registro, deveria ser realizada com o método HTTP POST, ok!?

    2 - Não há problemas em seu XHR JQuery. Na verdade pelo resultado ter sido apresentado na tela sem você ter feito isso só tem uma resposta: a ação do botão qual você clica para disparar a chamada ajax esta executando um submit.

    Verifique o seu HTML, os dados quais você esta enviando para o server estão dentro de um formulário (form), correto? 

    O botão que dispara a ação do javascript qual executa o XHR é um input/button do tipo submit, correto?

    Caso as duas respostas sejam sim você tem duas opções:

    1 - alterar o tipo do elemento HTML que dispara a ação do XHR para button. (Assim ele não submete a página);

    2 - Passar como argumento na sua função o event e chamar um dos metodos abaixo para prevenir que o navegador continue executando a ação para o submit.

    - event.preventDefault(); -- Browsers não IE e IE 10 e 11

    - event.returnValue = false; --  IE 8 e 9

    - return false; IE 8 e versões abaixo.

    Espero ter ajudado.

    Caso não seja esse o seu problema, tente especificar melhor que eu lhe ajudo.

    Abraço.


    sexta-feira, 29 de novembro de 2013 03:26