J'essaie de me lancer dans les appels Ajax en ASP.NET MVC.
Contrôleur :
public class AjaxTestController : Controller
{
//
// GET: /AjaxTest/
public ActionResult Index()
{
return View();
}
public ActionResult FirstAjax()
{
return Json("chamara", JsonRequestBehavior.AllowGet);
}
}
Voir :
<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>
J'ai juste besoin d'imprimer une alerte avec la méthode du contrôleur qui renvoie des données. Le code ci-dessus ne fait qu'imprimer "chamara" sur ma vue. Une alerte n'est pas déclenchée.
UPDATE
J'ai modifié mon contrôleur comme ci-dessous et il a commencé à fonctionner. Je n'ai pas une idée claire de la raison pour laquelle il fonctionne maintenant. Quelqu'un peut m'expliquer. Le paramètre "a" n'est pas lié, je l'ai ajouté parce que je ne peux pas ajouter deux méthodes avec le même nom de méthode et les mêmes paramètres.
public class AjaxTestController : Controller
{
//
// GET: /AjaxTest/
[HttpGet]
public ActionResult FirstAjax()
{
return View();
}
[HttpPost]
public ActionResult FirstAjax(string a)
{
return Json("chamara", JsonRequestBehavior.AllowGet);
}
}