2016-07-27 15 views
0

Ich möchte etwas auf meiner Aspx-Seite aktualisieren, nachdem ich eine Datei zum Download senden. (Einige Fehlermeldungen wurden zuvor angezeigt.). Ich glaube, das ist nicht möglich, aber würden Sie mir eine Lösung anbieten?Eine Nachricht nach dem Senden einer Datei zum Download anzeigen

Hier ist der Code, um die Datei zu senden herunterladen:

Response.ContentType = "Application/zip"; 
    Response.AddHeader("Content-Disposition", "attachment; filename=" + e.CommandArgument); 
    Response.BinaryWrite(fileStream.ToArray()); 
    Response.Flush(); 
    Response.Close(); 
    Response.End(); 

bearbeiten zu klären: Ich glaube auch, dass es keine logische Lösung. Es könnte jedoch einen Javascript-Trick geben, der mir nicht bekannt ist.

+1

Response.Write ("Die Datei wurde an Sie gesendet"); –

+1

@inquisitive_mind Er schreibt bereits eine Antwort mit der Datei. Was er meint, ist, dass er die Seite auch aktualisieren möchte. Er kann die Datei und die aktualisierte Seite nicht gleichzeitig beantworten. – derloopkat

+1

Sie müssen Javascript verwenden, einen Ajax-Anruf tätigen und Ihre Seite in der Erfolgsfunktion aktualisieren – derloopkat

Antwort

1

Das ist die einfachste Art, die ich mir vorstellen kann.

<a href="Default.aspx?download=1" 
    onclick="javascript:document.write('the file was downloaded');" > 
    Click here to Download 
</a> 

In meinem Code hinter ich

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(Request["download"]=="1") 
    { 
     try 
     { 
      Response.ContentType = "html/text"; 
      Response.AddHeader("Content-Disposition", "attachment; filename=file.txt"); 
      Response.Write("content of the file"); 
      Response.Flush(); 
      Response.Close(); 
      Response.End(); 
     } 
     catch (Exception) 
     { 
      //An error occurred 
      Response.Redirect("Error.aspx"); 
     } 
    } 
} 

haben, da es nur ein Link ist, wenn die Datei nicht der Browser gefunden wird, wird „nicht gefunden“ angezeigt werden soll. Wenn auf der Serverseite ein Fehler auftritt, wird auf die Fehlerseite umgeleitet. Wenn Sie eine ausgefeiltere Lösung wünschen, würde ich vorschlagen, XMLHttpRequest zu verwenden.

+0

Danke, nette Lösung. Meine Schaltfläche ist eigentlich eine asp.net-Schaltfläche, um ehrlich zu sein möchte ich einige Fehlermeldungen entfernen, die zuvor angezeigt werden. Ich wollte einfach keine verwirrenden Details hinzufügen. Ich werde den Beitrag erneut bearbeiten und hinzufügen. –

+1

Für eine Asp-Schaltfläche gibt es ein Attribut namens OnClientClick. Sie können Ihr Javascript dort setzen. – derloopkat

Verwandte Themen