Estoy tratando de comenzar con las llamadas ASP.NET MVC Ajax.
Controlador:
public class AjaxTestController : Controller
{
//
// GET: /AjaxTest/
public ActionResult Index()
{
return View();
}
public ActionResult FirstAjax()
{
return Json("chamara", JsonRequestBehavior.AllowGet);
}
}
Ver:
<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>
Solo necesito imprimir una alerta con el método del controlador que devuelve datos. Sobre el código, simplemente imprima "chamara" en mi vista. Una alerta no se dispara.
ACTUALIZAR
Modifiqué mi controlador como se muestra a continuación y comenzó a funcionar. No tengo una idea clara de por qué está funcionando ahora. Alguien por favor explique. El parámetro "a" no está relacionado, lo agregué porque no puedo agregar dos métodos con el mismo nombre de método y parámetros. Creo que esta podría no ser la solución, pero 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"}
. luego intente leer comodata['name']