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ß.