Estou tentando começar com chamadas ASP.NET MVC Ajax.
Controlador:
public class AjaxTestController : Controller
{
//
// GET: /AjaxTest/
public ActionResult Index()
{
return View();
}
public ActionResult FirstAjax()
{
return Json("chamara", JsonRequestBehavior.AllowGet);
}
}
Visão:
<head runat="server">
<title>FirstAjax</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var serviceURL = '/AjaxTest/FirstAjax';
$.ajax({
type: "POST",
url: serviceURL,
data: param = "",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: successFunc,
error: errorFunc
});
function successFunc(data, status) {
alert(data);
}
function errorFunc() {
alert('error');
}
});
</script>
</head>
Só preciso imprimir um alerta com os dados de retorno do método do controlador. Código acima apenas imprima "chamara" na minha visão. Um alerta não está disparando.
ATUALIZAR
Modifiquei meu controlador conforme abaixo e ele começou a funcionar. Não tenho uma ideia clara de por que está funcionando agora. Alguém, por favor, explique. O parâmetro "a" não está relacionado, eu o adicionei porque não posso adicionar dois métodos com o mesmo nome de método e parâmetros. Acho que esta pode não ser a solução, mas está funcionando
public class AjaxTestController : Controller
{
//
// GET: /AjaxTest/
[HttpGet]
public ActionResult FirstAjax()
{
return View();
}
[HttpPost]
public ActionResult FirstAjax(string a)
{
return Json("chamara", JsonRequestBehavior.AllowGet);
}
}
{"name":"chamara"}
. em seguida, tente ler comodata['name']