我有一個主頁/主菜單頁面。有一個鏈接到表單。如果您使用輸入運行表單,則會得到Excel輸出。如果您單擊「打開」在瀏覽器中打開該輸出,後退按鈕會將您帶到主頁/主菜單。BinaryWrite頁面未按預期工作
這是可以理解的,因爲如果表單頁面是X.aspx,那麼輸出Excel的binaryWrite並不會真的改變它。
問題是,如果有回發,後退按鈕會將您帶到表單頁面。這是不一致的。如果我運行頁面或下拉菜單導致回發,我確實希望後退按鈕將我帶到表單域,以便我可以再次運行Excel表單。
我試過的東西。
我試着添加一個位置標題。
e.ContentFileName = "ELTFile.Output.xls";
的response.Writing之前...
private void SendFileToBrowser(DownloadFileEventArgs e)
{
if (!e.Cancel && e.FileObject != null)
{
this.Page.Response.Clear();
this.Page.Response.ClearContent();
this.Page.Response.AddHeader("Content-Disposition", string.Format("inline; filename={0}", e.ContentFileName));
this.Page.Response.AddHeader("Content-Length", e.FileObject.LongLength.ToString());
this.Page.Response.AddHeader("Location", e.ContentFileName);
this.Page.Response.ContentType = e.ContentType;
this.Page.Response.BinaryWrite(e.FileObject);
this.Page.Response.End();
}
}
我試着
Response.Cache.SetCacheability(HttpCacheability.Public);
除了
Response.Cache.SetCacheability(HttpCacheability.Server);
但基本上,這取決於是否我點擊「提交」之前回復,但噸來生成Excel,我得到主菜單(不想要)或表單頁面(想要)。我每次都需要表單頁面。基本上我想告訴瀏覽器「我知道這不是一個真正不同的頁面,但以這種方式對待,你會喜歡嗎?」
謝謝。我會把你的標記作爲答案。我應該自己想想。但由於某種原因,我陷入了陷入困境,認爲我可以操縱Response對象來相信'之前'和'之後'是兩個不同的頁面。再次感謝。 – user426364