2 Stimmen

ASP.NET MVC 3 - aktiviert unobtrusive javascript, ajaxComplete feuert einmal und nie wieder

Vor unobtrusive Javascript, behandelte ich ajax komplette Ereignisse mit dem folgenden Register:

Sys.Net.WebRequestManager.add_completedRequest(myHandler);

Dieser Event-Handler wird jedes Mal ausgelöst, wenn eine Ajax-Anfrage abgeschlossen ist. Ich habe auch eine ajaxComplete Ereignis in $(document).ready() binden, um Ajax-Aufrufe ausschließlich über jQuery abzuwickeln:

$.ajaxComplete(function (e, xhr, settings) {
    myHandler(xhr)
});

Das funktioniert auch hervorragend. Aber ich bekomme ein anderes Verhalten, wenn ich unobstrusive javascript in ASP.NET MVC 3 aktiviert. Es feuert das erste Mal, wenn der erste Ajax-Aufruf abgeschlossen ist, aber auf nachfolgende Ajax-Anforderungen, ajaxComplete Ereignis nie wieder feuert.

Nun, ich weiß, dass Sie anrufen müssen. $.validate.unobtrusive.parse() um die Validierung neu zu erstellen, nachdem die Elemente im Formular über partielles Postback aktualisiert wurden. Gibt es etwas ähnliches, die ich tun müssen, um sicherzustellen, dass ajaxComplete wieder auf nachfolgende Anforderungen auslösen kann? Ich kann die Dokumentation dazu nicht finden.


Zu Ihrer Information: Ich habe alle jquery*.js-Libs eingebunden, um unaufdringliches Javascript zu unterstützen. Ich habe auch die MicrosoftMvc *.js Libs enthalten, um Legacy-Code in das Projekt zu unterstützen. Ich hatte gehofft, alles umzuwandeln, bis ich auf dieses Problem stieß.

0voto

Dan Turner Punkte 2213

Sie müssen eigentlich ajaxComplete an ein Element anhängen, dachte ich?

$('.info').ajaxComplete(function() {
   var info = $(this);
   info.html('Success!');
});

Sie sollten ajaxComplete nur einmal während seiner Lebensdauer an ein Element anhängen müssen.

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