2013-10-30 50 views
1

我用下面的代碼投放PDF文件瀏覽器:ASP.net服務於瀏覽器中的PDF文件 - 問題與瀏覽器歷史記錄

HttpContext.Current.Response.ContentType = "Application/pdf"; 
string filename = "somefilename.pdf"; 
HttpContext.Current.Response.AddHeader("Content-Disposition", 
         "inline; filename=thefile.pdf"); 
HttpContext.Current.Response.WriteFile(filename); 
HttpContext.Current.Response.End(); 

當此代碼觸發時,網址不會改變 - 它只是提供PDF文件。

在非IE瀏覽器中,當我回擊時,它會回到觸發該動作的頁面。然而,在IE瀏覽器中,我回到上一頁(即登錄頁面,而不是提供PDF文件的頁面)。

想知道處理這個問題的最佳方法,以便IE用戶可以點擊瀏覽器的「返回「按鈕,並得到一個可預測的迴應

+0

你在哪裏調用這段代碼 - 點擊按鈕,page_load等? – Tim

+0

這是一個按鈕點擊(特別是一個鏈接按鈕的命令) – MetalAdam

+0

當我點擊後退按鈕,我回到2頁。發生在IE10中。 – MetalAdam

回答

0

嗨,我認爲你必須使用一個按鈕重定向到其他網絡表單和在加載頁面複製你的代碼來收取你想要顯示在PDF中的信息,顯然也代碼顯示此如PDF

0

嘗試歷史ScriptManager控件。

ASP.NET history

+0

嗯。嘗試了這一點,並得到一個錯誤:System.InvalidOperationException:歷史點只能在異步回發期間創建。我不是在做異步回發...... – MetalAdam

+0

我認爲你需要做的是類似於ScriptManager和它的工作方式 - 你需要添加一個哈希到URL,並使用該數據來重建你的頁面狀態。用手編碼可能比實現AJAX要困難得多。這對你來說是一種選擇嗎? – Tim