Maison  >  Article  >  interface Web  >  Pourquoi un appel Ajax dans ASP.NET MVC ne déclenche-t-il pas d'alerte si des données sont manquantes ?

Pourquoi un appel Ajax dans ASP.NET MVC ne déclenche-t-il pas d'alerte si des données sont manquantes ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-18 22:22:03471parcourir

Why Doesn't an Ajax Call in ASP.NET MVC Trigger an Alert if Data is Missing?

Faire un simple appel Ajax au contrôleur dans ASP.NET MVC

Lorsque l'on tente d'effectuer des appels Ajax dans ASP.NET MVC, on peut rencontrer des défis, comme illustré dans le scénario ci-dessous :

Problème

Le but est d'afficher une alerte avec les données renvoyées par une méthode contrôleur. Cependant, l'alerte ne se déclenche pas.

Contrôleur :

public class AjaxTestController : Controller
{
    public ActionResult FirstAjax()
    {
        return Json("chamara", JsonRequestBehavior.AllowGet);
    }   
}

Affichage :

<code class="html"><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></code>

Observation :

Dans un premier temps, l'appel Ajax n'a pas réussi à déclencher l'alerte. Après avoir ajouté un paramètre sans rapport et apporté des modifications à la méthode dans le contrôleur, l'alerte a commencé à fonctionner correctement. Cependant, la raison de ce comportement reste floue.

Solution

1. Supprimer l'attribut de données inutile :

Étant donné qu'aucune donnée n'est envoyée au serveur, l'attribut de données doit être supprimé de l'appel Ajax.

2. Utiliser la syntaxe Razor pour l'URL :

Dans la méthode Ajax, utilisez la syntaxe Razor pour générer l'URL au lieu d'une chaîne statique :

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

3. Ajouter l'affichage du message dans la fonction de réussite :

Dans la fonction de réussite, ajoutez le message que vous souhaitez afficher dans l'alerte.

4. Gestion de la publication des données :

Si vous devez publier des données sur le serveur, ajoutez un attribut de données et fournissez les données appropriées dans l'appel Ajax.

5. Appel Ajax mis à jour :

<code class="js">$.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