none
Asp.Net Mvc E Post Jquery RRS feed

  • Pergunta

  • Boa noite!

    Pessoal, estou tentando fazer post via ajax jquery e fiquei curioso porque tento fazer de dois modos.

    Quando faço dessa maneira funciona perfeitamente se houver sucesso!

    $("#form").submit(function (e) {
    
                $.post('/Cadastro/Form',
                    $(this).serialize(),
                    function (data) {
                        $("#resultado").html(data.Message);
                    });
                    e.preventDefault();
    });

    Mas eu não consigo colocar a opção para retornar erro se algo der errado!

    Tento utilizar a segunda opção de varias maneiras mas não funciona!

     $("#form").submit(function ()
    
     var dados = $(this).serialize();
    
            $.ajax({
                url: '/Cadastro/Form',
                async: false,
                type: 'POST',
                data: JSON.stringify(dados),
                datatype: 'json',
                success: function (data, textStatus, jqXHR) {
                    $("#resultado").html(data.Message);
                },
                error: function (jqXHR,textStatus,errorThrown) {
                    alert(jqXHR + "-" + textStatus + "-" + errorThrown);
                }
            });
        });

    Esse é o controller:

     [HttpPost]
            public ActionResult Form(Cadastro c)
            {
                if (ModelState.IsValid)
                {
                    c.Id = repository.buscaIdMax();
                    repository.Adiciona(c);
                    repository.Salvar();
                    return Json(new {Message = "Adicionado com sucesso:" + c.Nome });
                }
    
                return View();
    
            }

    O que eu estou fazendo de errado?

    Grato.

    terça-feira, 10 de dezembro de 2013 00:29

Respostas

  • Uallace 

    Se esqueceu de um { e na verdade tava quase certo ...

    mas, ai ta como deveria ser a segunda forma

    $("#form").submit(function (e) {
            var dados = $(this).serialize();
            alert(dados);
            $.ajax({
                url: '/Cadastro/Form',
                async: false,
                type: 'POST',
                data: dados,
                datatype: 'json',
                success: function (data, textStatus, jqXHR) {
                    $("#resultado").html(data.Message);
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert(jqXHR + "-" + textStatus + "-" + errorThrown);
                }
            });
            e.preventDefault();
        });


    Fulvio Cezar Canducci Dias


    • Editado Fulvio Cezar Canducci Dias terça-feira, 10 de dezembro de 2013 03:58
    • Sugerido como Resposta Vitor Mendes terça-feira, 10 de dezembro de 2013 11:03
    • Marcado como Resposta Uallace terça-feira, 10 de dezembro de 2013 17:35
    terça-feira, 10 de dezembro de 2013 03:57

Todas as Respostas

  • Uallace 

    Se esqueceu de um { e na verdade tava quase certo ...

    mas, ai ta como deveria ser a segunda forma

    $("#form").submit(function (e) {
            var dados = $(this).serialize();
            alert(dados);
            $.ajax({
                url: '/Cadastro/Form',
                async: false,
                type: 'POST',
                data: dados,
                datatype: 'json',
                success: function (data, textStatus, jqXHR) {
                    $("#resultado").html(data.Message);
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert(jqXHR + "-" + textStatus + "-" + errorThrown);
                }
            });
            e.preventDefault();
        });


    Fulvio Cezar Canducci Dias


    • Editado Fulvio Cezar Canducci Dias terça-feira, 10 de dezembro de 2013 03:58
    • Sugerido como Resposta Vitor Mendes terça-feira, 10 de dezembro de 2013 11:03
    • Marcado como Resposta Uallace terça-feira, 10 de dezembro de 2013 17:35
    terça-feira, 10 de dezembro de 2013 03:57

  • Obrigado amigo, agora funciona perfeitamente!

    Grato.

    terça-feira, 10 de dezembro de 2013 17:37