web-dev-qa-db-fra.com

Faire une demande AJAX en utilisant $ .ajax dans MVC 4

J'essaie de faire une demande AJAX en utilisant $ .ajax dans MVC 4 avec Razor. Je ne sais pas comment l'implémenter.

En utilisant cette vidéo J'ai réussi à passer un appel lié à un lien qui a renvoyé des données, mais je n'arrive pas à faire la même chose à l'intérieur d'une fonction jquery. Je n'arrive pas à trouver d'exemples de base sur la façon de procéder. Voici avec quoi je travaille:

HomeController.cs

        public string test(){
             return "It works";
        }

View.cshtml

function inventory(dealerID) {
    $.ajax({
        url: '@Url.Action("HomeController","test")',
        data: {dealerID: dealerID},
        type: 'POST',
        success: function(data) {
            process(data);
        }
    });
}
15
Mason

Il vous suffit d'en faire un ActionResult. De plus, si vous utilisez un Ajax POST, l'action doit être marquée avec l'attribut HttpPost. Essaye ça:

[HttpPost]
public ActionResult test(string dealerID)
{
    return Content("It works");
}

Edit En fait, il y a quelques autres problèmes avec la syntaxe.

  1. Url.Action A les paramètres contrôleur/action dans le mauvais ordre - devrait être "ActionName" d'abord, puis "ControllerName"
  2. Pour Url.Action, Si la classe de contrôleur est "HomeController", alors vous avez juste besoin de "Home"
  3. La syntaxe des options JQuery est incorrecte - devrait être success: function(data) {}.

$.ajax({
    url: '@Url.Action("test", "Home")',
    data: {dealerID: dealerID},
    type: 'POST',
    success: function(data) {
        alert(data);
    }
});
28
McGarnagle