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 :
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.
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!