Maison >développement back-end >C++ >Comment effectuer des appels Ajax efficaces vers un contrôleur ASP.NET MVC ?

Comment effectuer des appels Ajax efficaces vers un contrôleur ASP.NET MVC ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-15 12:33:50516parcourir

How to Make Effective Ajax Calls to an ASP.NET MVC Controller?

Un guide complet pour envoyer des requêtes Ajax aux contrôleurs ASP.NET MVC à l'aide de jQuery

Cet article vous expliquera comment utiliser jQuery pour lancer des requêtes Ajax vers les contrôleurs ASP.NET MVC, y compris l'implémentation de contrôleurs et de vues, ainsi que la communication client-serveur.

Fonctionnement du contrôleur

Votre contrôleur doit définir des actions pour gérer les requêtes Ajax. Dans l'exemple suivant, FirstAjax est une opération qui répond avec des données au format JSON :

<code class="language-csharp">public ActionResult FirstAjax()
{
    return Json("chamara", JsonRequestBehavior.AllowGet);
}</code>

Voir

La vue

initialise jQuery et envoie une requête Ajax à l'action FirstAjax. La requête inclut un gestionnaire de réussite qui affiche la réponse dans une boîte d'alerte :

<code class="language-javascript">$(document).ready(function () {
    var serviceURL = '/AjaxTest/FirstAjax';

    $.ajax({
        type: "POST",
        url: serviceURL,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successFunc,
        error: errorFunc
    });

    function successFunc(data, status) {     
        alert(data);
    }

    function errorFunc() {
        alert('error');
    }
});</code>

Plan d'amélioration

Notez que l'attribut data dans la requête Ajax d'origine pose des problèmes car votre contrôleur n'attend aucun paramètre. Supprimer cet attribut et utiliser la méthode @Url.Action résoudra le problème :

<code class="language-javascript">$.ajax({
    url: '@Url.Action("FirstAjax", "AjaxTest")',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: successFunc,
    error: errorFunc
});</code>

Pour les requêtes POST qui incluent des données, vous devez modifier l'action du contrôleur pour accepter les paramètres et modifier la requête Ajax pour inclure les données :

<code class="language-csharp">// 控制器
[HttpPost]
public ActionResult FirstAjax(string a)
{
    return Json("chamara", JsonRequestBehavior.AllowGet);
}

// 视图
$.ajax({
    type: "POST",
    url: '@Url.Action("FirstAjax", "AjaxTest")',
    contentType: "application/json; charset=utf-8",
    data: { a: "testing" },
    dataType: "json",
    success: function() { alert('Success'); },
    error: errorFunc
});</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn