2012-12-19 16 views
10

Ho un codice in un evento click del pulsante che ottiene una stringa csv da un input nascosto e la scrive nella risposta come un file CSV.Download file CSV ignorato in ie8/9

Questo funziona perfettamente in Chrome, Firefox, ie7, ovvero 9 in modalità strane. Tuttavia non funziona in default ie8 o ie9.

Guardando questo nel violinista, il csv viene scritto nella risposta, ma l'altro riceve la richiesta immediatamente dopo e la pagina si ricarica. Non appare alcuna finestra di dialogo per il salvataggio dei file.

protected void btnCsvHidden_Click(object sender, EventArgs e) 
    { 
     var csv = csvString.Value; 
     var filename = "Reporting"; 

     Response.Clear(); 
     Response.ClearHeaders(); 
     Response.AddHeader("Cache-Control", "no-store, no-cache"); 
     Response.AddHeader("content-disposition", "attachment; filename=\"" + filename + ".csv\""); 
     Response.ContentType = "text/csv"; 
     Response.Write(csv); 
     Response.End(); 
    } 
+2

Hai dato un'occhiata a questa domanda SO (http://stackoverflow.com/questions/393647/response-content-type-as-csv)? –

+0

Esiste un URL live in cui può essere visto? Sei sicuro che non ci siano altri gestori di eventi che causano il refresh della pagina prima che venga generata la richiesta di download? Vedi lo stesso problema se cambi il Content-Type in application/octet-stream? – EricLaw

+0

Purtroppo non ho un esempio dal vivo, sto cominciando a pensare che questo sia un problema con la mia stessa installazione. – JBB

risposta

3

Il problema era con il mio IE, ho eseguito un carico di aggiornamenti di Windows e ora funziona, quindi non sono sicuro di cosa fosse esattamente.