【发布时间】:2017-09-05 15:17:28
【问题描述】:
我正在尝试在 c# 中提供一个带有单击功能的链接按钮(asp)。当用户点击链接按钮时,后端代码会发送一个 pdf 文件给用户下载。
我已经完成了代码,并且似乎在打开页面时下载了文件。但在我的一种情况下,它会以窗口对话框的形式打开页面。
在这种情况下,当我单击链接按钮时,代码会执行,但不会发生下载操作。在使用 windows.open 打开的窗口对话框中加载相同页面时,文档下载失败。
例如:父页面:Dashboard.aspx 子页面:DownloadFormatSelector.aspx 我导航到 localhost/DownloadFormatSelector.aspx 页面并单击“下载”按钮,浏览器 (IE) 显示“另存为”、“打开”选项。
但是,如果我使用 window.showModalDialog 从仪表板打开 DownloadFormatSelector.aspx 页面。下载不会发生 例如:localhost/Dashboard.aspx 和 DownloadFormatSelector.aspx 页面使用 window.showModalDialog 在 ot 内部打开。
我不知道为什么当页面在 window.showModalDialog 中呈现时它不下载文档或显示“另存为”选项。
DownloadFormatSelector 文件中包含以下所有代码。
Dashboard.aspx 只是父窗口。当子窗口导航到(如 localhost/DownloadFormatSelector.aspx)时,我能够执行下载,但在 window.showModalDialog 中打开同一页面时,我无法下载文件,页面不显示任何另存为或打开下面的选项。我可以修改什么以在 showmodaldialog 内的页面上执行保存
代码c#点击:
public void DownloadButton_Click(Object sender, EventArgs e)
{
byte[] data=GetData();
Response.Clear();
Response.AddHeader("Content-Disposition",
String.Format("attachment;filename={0}", "temp.pdf"));
Response.ContentType = "application/pdf";
Response.BinaryWrite(data);
Response.End();
}
Asp.Net
<asp:LinkButton id="Link" Text="Download" OnClick="DownloadButton_Click" runat="server"/>
作为窗口对话框打开:
window.showModalDialog JS method to call another aspx page to be rendered inside the dialog window
【问题讨论】:
-
“将页面作为窗口对话框打开”是什么意思?这段代码应该向客户端发送一个文件,不清楚是什么问题。
-
嗨大卫,我正在打开类似于这篇文章的 aspx 页面 window.open('child_page.html','name','width=200,height=200');.. 从这里链接stackoverflow.com/questions/5660700/…
-
"页面已加载到窗口对话框中"。什么窗口对话框?您的意思是您收到一条消息,询问您是要打开还是保存它?
-
@PradeepK:不要链接到可能与您的代码相似的东西,而是演示您在 your 代码中所做的事情。编辑问题以添加相关信息。准确说明失败的原因。例如,在您浏览器的调试工具中,服务器的实际响应是什么?
-
@PradeepK:那行 JavaScript 是如何与那个链接按钮相关联的?你如何防止回邮?该 HTML 页面如何执行您的服务器端代码?从您问题中的代码中不清楚您实际上在做什么。