Das Setup:ASP.NET MVC-Controller filecontent Action über AJAX genannt
Der Controller enthält ein Verfahren, das ein public ActionResult SaveFile()
FileContentResult
zurückgibt.
Was funktioniert:
Die Ansicht enthält eine Form, die an dieser Aktion einreicht. Das Ergebnis ist dieser Dialog:
Was funktioniert nicht:
Die Ansicht enthält einige Javascript einen AJAX-Aufruf zu der gleichen Controller-Aktion zu tun, wo das Formular veröffentlichen würde. Anstatt den oben erwähnten Dialog oder sogar die AJAX-Erfolgsfunktion auszulösen, löst die Antwort die AJAX-Fehlerfunktion aus, und XMLHttpRequest.responseText
enthält die Dateiantwort.
Was ich tun muss:
die Anfrage für die Datei Make AJAX verwenden, und mit dem gleichen Ergebnis am Ende als wenn ein Formular abgeschickt werden. Wie kann ich sicherstellen, dass die AJAX-Anfrage den Dialog zum Senden eines Formulars enthält?
Warum können Sie nicht nur nicht-Ajax-Aufruf verwenden? – LukLed
Ich kann, aber ich möchte eine andere Verarbeitung in der JavaScript-Funktion zu tun, sobald der Speichervorgang abgeschlossen ist, wie das Formular entsperren, die ich vor dem Speichern blockiert. – Rick
OK, Sie können also zuerst ajax SaveFile aufrufen. SaveFile gibt True/False zurück. Wenn es wahr zurückgibt, rufen Sie non-ajax GET auf, um die Datei zu erhalten. – LukLed