Response.BinaryWrite()无法在模态弹出窗口中工作

时间:2011-03-14 12:12:34

标签: c# javascript sharepoint pdf popup

我正在开发一个SharePoint应用程序,我将PDF内容输出到浏览器,以便用户可以保存PDF。但是当我执行Response.Redirect()时它正在工作,但是当我使用SharePoint的CommonShowModalDialog()在新的弹出窗口中打开同一页面时,它却无效。

如果我重定向到http://test/pdfoutput.aspx,我写了BinaryWrite()代码,那就可以了。

但是,如果我使用SharePoint的Modal对话框打开页面,我会正确地弹出页面,并且在调试时代码会被执行而没有任何异常。但是我没有收到保存对话框。

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

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

据我所知,问题在于您并不总是会出现“保存”对话框。当不执行Response.Redirect时,内容将在浏览器窗口中打开。

如果是这种情况,则需要在响应中的HTTP标头中添加内容处置标头和mime类型。

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

答案 1 :(得分:0)

最初我使用SharePoint的CommonShowModalDialog来显示弹出窗口。它在内部(在core.js中)执行window.open()。但问题出在CommonShowModalDialog上,当我用一个简单的window.open()替换它时,它就可以了。