Heim > Web-Frontend > js-Tutorial > Hauptteil

Warum löst ein Ajax-Aufruf in ASP.NET MVC keine Warnung aus, wenn Daten fehlen?

Mary-Kate Olsen
Freigeben: 2024-10-18 22:22:03
Original
470 Leute haben es durchsucht

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

Durchführen eines einfachen Ajax-Aufrufs an den Controller in ASP.NET MVC

Beim Versuch, Ajax-Aufrufe in ASP.NET MVC durchzuführen, kann es zu Herausforderungen kommen, wie im Beispiel dargestellt Szenario unten:

Problem

Das Ziel besteht darin, eine Warnung mit Daten anzuzeigen, die von einer Controller-Methode zurückgegeben werden. Die Warnung wird jedoch nicht ausgelöst.

Controller:

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

Ansicht:

<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>
Nach dem Login kopieren

Beobachtung:

Der Ajax-Anruf löste zunächst keinen Alarm aus. Nachdem ein unabhängiger Parameter hinzugefügt und Methodenänderungen im Controller vorgenommen wurden, funktionierte die Warnung ordnungsgemäß. Der Grund für dieses Verhalten bleibt jedoch unklar.

Lösung

1. Unnötiges Datenattribut entfernen:

Da keine Daten an den Server gesendet werden, sollte das Datenattribut aus dem Ajax-Aufruf entfernt werden.

2. Verwenden Sie die Razor-Syntax für die URL:

Verwenden Sie in der Ajax-Methode die Razor-Syntax, um die URL anstelle einer statischen Zeichenfolge zu generieren:

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

3. Nachrichtenanzeige in der Erfolgsfunktion hinzufügen:

Fügen Sie in der Erfolgsfunktion die Nachricht hinzu, die Sie in der Benachrichtigung anzeigen möchten.

4. Umgang mit Daten-POSTing:

Wenn Sie Daten an den Server POSTEN müssen, fügen Sie ein Datenattribut hinzu und geben Sie die entsprechenden Daten im Ajax-Aufruf an.

5. Aktualisierter Ajax-Aufruf:

<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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum löst ein Ajax-Aufruf in ASP.NET MVC keine Warnung aus, wenn Daten fehlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage