Domanda

Ho testato questo in IIS 6.1, IE 7, ASP.NET 3.5 SP1.

Ho un file di download in un metodo nel mio aspx codebehind:

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

Questa grande opera, ma se tento di modificare qualsiasi mio lato sever controlla le modifiche non avranno effetto. Ho isolato questo giù per la chiamata a ContentType, questo whipes a quanto pare tutte le modifiche in sospeso al flusso di risposta quando viene chiamato? Questo suona familiare a chiunque?

Se il codice ha un ramo alternativo e la chiamata a download non sparare il markup è modificato come previsto.

Qualche suggerimento su come posso risolvere questo problema e avere la pagina di lavare l'allegato e aggiornare l'interfaccia utente nello stesso flusso di risposta?

Questa è specifico per l'aggiornamento del ValidationSummary, così ho potuto strappare nella JS sull'evento PageRequestManager completa come ultima risorsa, ma preferirei non fare affidamento su JS per questo.

È stato utile?

Soluzione

Non sei sicuro di quello che stai cercando di fare - stai cercando di servire contemporaneamente un file di download e un aggiornamento alla pagina HTML che legati ad esso da? Non è così che funziona HTML.

Se si vuole raggiungere questo risultato, allora avrete fondamentalmente, devono rendere una meta redirect che va al file che viene restituito nel codice HTML, in questo modo la pagina verrà caricata e poi il download inizi (come si vedrà su un sacco di siti di download).

Altri suggerimenti

Come fyjham detto, non capisco davvero quello che stai cercando di fare. Alcuni suggerimenti che potrebbero aiutare:

  1. Tenete a mente che la fase di rendering, quando il contenuto dal vostro markup e controlli viene generato, come accade quasi l'ultima fase nel codice dietro (ben dopo Page Load)
  2. Una volta le intestazioni a filo, non è possibile impostare di nuovo
  3. I controlli possono sovrascrivere alcune intestazioni HTTP
  4. Non è possibile utilizzare un file di download e di markup HTML nella stessa risposta HTTP
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top