8 Stimmen

Wie wird OnSuccess für einen ASP.NET MVC ActionLink gemessen?

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.

Ich baue eine ASP.NET MVC-Anwendung und darin habe ich eine Ajax.ActionLink, die mir erlaubt, "Abstimmung" auf Elemente mit AJAX ... ähnlich wie Digg. Der Actionlink stößt meine Controller und Methode ... alles funktioniert gut hier.

In meinem Controller habe ich eine Logik, die prüft, ob dieser Benutzer schon einmal abgestimmt hat. Ich wollte "OnSuccess" und "OnFailure" verwenden, um unterschiedlich zu reagieren. Ich möchte, dass meine Javascript-Funktion "PlusOneVote" ausgeführt wird, wenn der Benutzer noch nie abgestimmt hat (dies ist das OnSuccess-Szenario), und wenn der Benutzer abgestimmt hat, bevor ich meine Javascript-Funktion "CheaterYouCantVoteTwice" ausführen möchte.

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

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

6voto

womp Punkte 113535

Der Erfolg wird anhand des HTTP-Statuscodes der Ajax-Antwort gemessen, und nichts weiter. Wenn Sie einen Code der Stufe 400 (400 - 417) erhalten, gilt dies als Fehlschlag. Wenn Sie einen 200 erhalten, wird dies als Erfolg gewertet.

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X