2015-05-19 79 views
1

我有這個功能,按原樣正常工作。當所謂的 - 它會創建一個文件到我的瀏覽器的下載文件夾:AppendHeader然後刷新

private void gvLots_Export(string fileName) 
{ 
    Response.Clear(); 

    Response.AppendHeader("content-disposition", "attachment; filename=" + fileName); 
    Response.ContentType = "text/plain"; 


    Response.Write(fichierExport.Contenu); 
    Response.End(); 

} 

但現在,我需要刷新頁面剛過該文件被正確地添加到下載文件夾中。我曾經嘗試這樣做:

Response.AppendHeader("content-disposition", "attachment; filename=" + fileName); 
    Response.ContentType = "text/plain"; 

    Response.Write(fichierExport.Contenu); 
    Response.End(); 
    Response.Redirect(Request.RawUrl); 

但是,它並沒有顯而易見的原因工作:頭部已經發送,您可以到Response.End不重定向後()。

我試圖可變加入到可能由Resquest檢索[「停止」(如下所示)的報頭:

Response.AppendHeader("content-disposition", "?stop=true&" + "attachment; filename=" + fichierExport.NomFichier); 

但是,這些結果甚至更糟。它不會刷新頁面或下載任何內容,但會向我顯示正在嘗試下載到瀏覽器中的文件的內容...甚至可以下載某些內容並使用相同的功能刷新頁面...無不得不要求客戶推2個不同的按鈕?

+1

我注意到的第一件事是,您的標題將看起來像'內容處置:?停止= trueattachment;文件名= somefile.ext' – ahwm

回答

1

我假設我要求的是不能做的......我沒有看到任何我想要做的任何網頁上的東西。我會做另一個超鏈接,只刷新頁面,我會要求所有的客戶點擊它後,他們下載...

1

由於我還不能評論,我會在這裏發佈。

看看:Refresh Page C# ASP.NET。您是否按照鏈接中描述的方式嘗試過?例如: -

Response.Redirect(Request.Url.ToString(), true); 

如上所述here,該RawUrl只包含域信息後的URL的一部分,Url包含的一切。

+1

感謝您的努力科裏,但這裏是捲筒的問題,如果我寫你的行之前response.End(),我的頭被完全忽略,沒有文件被下載,如果我寫它後response.End(),它提出一個exeption並關閉程序...給你點,所以你可以評論,這是奇怪的沒有足夠的聲譽,只是評論,但足以回答 –