Maison > interface Web > js tutoriel > 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
Libérer: 2024-10-18 22:22:03
original
540 Les gens l'ont consulté

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);
    }   
}
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal