Usuário com melhor resposta
Asp.Net Mvc E Post Jquery

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.
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(); });
- 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
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(); });
- 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
-