Frage

Ich habe dies in IIS getestet 6.1, IE 7, ASP.NET 3.5 SP1.

Ich habe eine Datei herunterladen in einem Verfahren in meinem aspx Code-Behind:

Response.ContentType = contentType;
Response.AppendHeader("Content-Disposition", contentDisposition);
Response.BinaryWrite(file);

Dies funktioniert gut, aber wenn ich jede meiner Sever Seite zu ändern versuchen, steuert die Änderungen haben keinen Einfluss nehmen. Ich habe diese isoliert bis auf den Aufruf von Content, dies anscheinend alle anstehenden Änderungen in den Antwortstream Peitschen, wenn sie aufgerufen? Wer kennt das nicht zu anyone?

Wenn der Code einen alternativen Zweig und den Anruf entgegennimmt nicht zum Download nicht die Markup Feuer geändert wird, wie erwartet.

Alle Vorschläge, wie ich dieses Problem beheben kann und die Seite die Anlage spülen und die Benutzeroberfläche in der gleichen Antwortstream aktualisieren?

Dies ist speziell für die Validation Aktualisierung, so dass ich in die JS auf dem Pagerequestmanager-Ereignisse komplett als letztes Mittel reißen könnte, aber ich würde es vorziehen, nicht für diesen auf JS verlassen.

War es hilfreich?

Lösung

Nicht sicher, was Sie zu tun versuchen - versuchen Sie gleichzeitig eine Download-Datei und ein Update auf die HTML-Seite dienen sie aus mit ihm verbunden? Das ist nicht, wie HTML funktioniert.

Wenn Sie dieses Ergebnis erzielen wollen, dann werden Sie im Grunde eine Meta-Weiterleitung zu machen, die in die Datei geht, die in der HTML zurückgegeben wird, auf diese Weise die Seite geladen wird, und dann die Download startet (Wie Sie sehen, auf einer Menge von Download-Site).

Andere Tipps

Wie fyjham sagte, ich weiß nicht wirklich verstehen, was Sie zu tun versuchen. Ein paar Tipps, die helfen könnten:

  1. Beachten Sie, dass die Phase Render, wenn der Inhalt von Markup und Kontrollen erzeugt wird, geschieht wie fast die allerletzten Phase in Ihrem Code hinter (auch nach Page_Load)
  2. Sobald Sie bündig Header, man kann sie nicht wieder eingestellt
  3. Steuerungen können einige HTTP-Header überschreiben
  4. Sie können keine Datei herunterladen und HTML-Markup in der gleichen HTTP-Antwort
  5. mischen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top