Heim >Web-Frontend >js-Tutorial >Warum löst ein Ajax-Aufruf in ASP.NET MVC keine Warnung aus, wenn Daten fehlen?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-18 22:22:03534Durchsuche

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);
    }   
}

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>

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>

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>

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!

Stellungnahme:
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