2009-07-26 11 views
7

Ich verstehe nicht genau, wie ASP.NETs ActionLinks funktionieren. Ich sehe, dass sie einen Event-Handler für OnSuccess und OnFailure haben, aber ich kann nichts finden, das beschreibt, wie Erfolg und Misserfolg bestimmt wird.Wie wird OnSuccess für einen ASP.NET MVC ActionLink gemessen?

Ich baue eine ASP.NET MVC-Anwendung und darin habe ich eine Ajax.ActionLink, die mir erlaubt, auf Elemente mit AJAX ... ähnlich Digg "abstimmen". Der Actionlink startet meinen Controller und meine Methode ... hier läuft alles gut.

In meiner Steuerung habe ich Logik, die prüft, ob dieser Benutzer vorher abgestimmt hat. Ich wollte mit "OnSuccess" und "OnFailure" anders reagieren. Ich möchte, dass es meine Javascript-Funktion "PlusOneVote" ausführt, wenn der Benutzer nie gewählt hat (Dies ist das OnSuccess-Szenario) und wenn der Benutzer vorher abgestimmt hat, möchte ich meine Javascript-Funktion "CheaterYouCantVoteTwice" ausführen.

Kann jemand erklären, wie OnFailure und OnSuccess gemessen werden?

Kann jemand erklären, wie ich diese Logik bauen kann ... wo ich eine Javascript-Funktion in einem Zweig (in meinem Fall, wenn der Benutzer nie gewählt hat) und eine andere Javascript-Funktion in dem Fall, dass der Benutzer bereits ausgeführt hat abgestimmt?

Antwort

5

Der Erfolg wird basierend auf dem HTTP-Statuscode der Ajax-Antwort gemessen, und nicht mehr. Grundsätzlich, wenn Sie einen 400-Level-Code (von 400 bis 417) erhalten, erhalten Sie einen Fehler. Wenn Sie eine 200 bekommen, wird dies als Erfolg gewertet.

Ich denke, Sie müssen den Inhalt der Daten in Ihrem OnSuccess-Handler untersuchen, um zu bestimmen, was zu tun ist, anstatt einen Typ eine Fehlermeldung und einen Typ eine Erfolgsmeldung zu betrachten. Aus der Ajax-Perspektive war es erfolgreich, wenn eine gültige Antwort zurückgegeben wurde.

Verwandte Themen