2011-03-14 109 views
2

我正在開發一個SharePoint應用程序,在該應用程序中,我將PDF內容輸出到瀏覽器,以便用戶可以保存PDF。但是,當我執行Response.Redirect()時,它正在工作,但當我使用SharePoint的CommonShowModalDialog()在新的彈出窗口中打開相同頁面時,它不工作。Response.BinaryWrite()在模式彈出窗口中不起作用

如果我重定向到http://test/pdfoutput.aspx我寫了BinaryWrite()代碼它工作正常。

但是,如果我使用SharePoint的模態對話框打開頁面,我正在彈出的頁面正確地彈出,並且代碼在調試時沒有任何異常情況下執行。但我沒有收到保存對話框。

Same page -> Response.Redirect() - works 
      -> CommonShowModalDialog() - Fails 

任何想法?

+0

請參閱http://stackoverflow.com/questions/104601/asp-net-response-redirect-to-new-window – dhirschl 2011-03-14 12:28:09

+0

您是否考慮更改問題以反映您接受的答案中顯示的詳細信息?即使用SharePoint的CommonShowModalDialog時發現問題。否則,這個問題看起來像dhirschl所指的那個問題。 – 2011-04-28 22:02:55

+0

按要求編輯。 – NLV 2011-04-29 04:14:37

回答

0

最初我使用SharePoint的CommonShowModalDialog來顯示彈出窗口。它在內部(在core.js中)是window.open()。但是問題出在CommonShowModalDialog上,當我用一個簡單的window.open()替換它時,它就起作用了。

0

正如我理解的問題,問題是,你並不總是讓「保存」對話框出現。當沒有執行Response.Redirect時,內容在瀏覽器窗口中打開。

如果是這種情況,您需要將內容處置標題和MIME類型添加到響應中的HTTP標頭。

Response.AppendHeader("content-disposition", "attachment; filename=\"" + filename + "\""); 
Response.ContentType = "application/pdf"; 
+0

我已經添加了所有這些。 – NLV 2011-03-15 09:10:40