簡體   English   中英

Response.BinaryWrite()在模式彈出窗口中不起作用

[英]Response.BinaryWrite() not working in a modal popup window

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

如果我重定向到我在其中編寫BinaryWrite()代碼的http://test/pdfoutput.aspx ,則可以正常工作。

但是,如果我使用SharePoint的“模態”對話框打開頁面,則可以正確地在彈出窗口中打開頁面,並且在調試時將無任何異常地執行代碼。 但是我沒有得到保存對話框。

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

有任何想法嗎?

據我了解的問題,問題在於您並不總是會出現“保存”對話框。 不執行Response.Redirect時,內容將在瀏覽器窗口中打開。

在這種情況下,您需要在響應中的HTTP標頭中添加內容處置標頭和mime類型。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM