Ich weiß, es gibt eine Menge Fragen über das Herunterladen und Exportieren von Dateien von einer asp.net-Website, aber sie alle am Ende mit der gleichen Antwort. Meine Website bietet Benutzern die Möglichkeit, Dateien herunterzuladen und Daten in eine Excel-Tabelle zu exportieren. Derzeit ich die Lösung jeden verwende scheint, die wie folgt aussieht zu bieten:ASP.net herunterladen/exportieren ohne HttpContext
public void ExcelExport(System.Data.DataTable dtData, String strFileName)
{
try
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + strFileName);
HttpContext.Current.Response.ContentType = GetMIMEType(Path.GetExtension(strFileName));
HttpContext.Current.Response.Write(BuildStringWriter(dtData));
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();
}
catch (Exception ex)
{
throw new Exception("ExcelExport() Failed: " + ex.Message);
}
}
Dies ist die Methode, die ich zu Exportdaten nenne, und meine Download-Methode ist fast identisch. Das Problem ist, dass ich keinen Spinner oder eine wartende Nachricht anzeigen kann, weil ich keine Möglichkeit habe, einen zu schließen, sobald der Export/Download abgeschlossen ist. Es gibt noch weitere Aufgaben, die ich nach dem Export/Download ausführen möchte, aber derzeit kann ich das nicht.
Also meine Frage ist: Gibt es eine andere Möglichkeit für meinen Kunden, Dateien herunterzuladen und Daten zu exportieren, ohne HttpContext zu verwenden? Außerdem würde ich lieber nicht auf eine DLL verweisen, die ich herunterladen müsste.
Dank
ist die Excel eine xls-Datei exportieren oder es kann eine csv sein? Wenn es ein csv sein kann und Sie Seitendaten verwenden, um nach Excel zu exportieren, können Sie es leicht Clientseite tun. Eine andere Sache, die Sie tun können, ist nur die Bytes an den Client zu senden und sie Client-Seite zu verarbeiten. – Rick
Um klar zu sein, es ist nicht HttpContext, mit dem Sie ein Problem haben. Eher schließt/beendet sie die Antwort. – mason
@Rick Die Exportdatei ist ein xls. Ich arbeite an einer anderen Möglichkeit, die Daten zu exportieren, aber mein Problem bleibt für Dateien, die meine Kunden herunterladen müssen. Ich muss sicherstellen, dass der Export und der Download auf so vielen Browsern funktioniert, dass ich mich nicht auf das Download-Attribut verlassen kann. Ich bin nicht vertraut mit dem Konvertieren der Dateien/Daten in Bytes und das Senden an die Clientseite, aber ich werde das untersuchen. Danke für die Antwort. – KyleS