c# - ASP.net 附件然后刷新页面

标签 c# asp.net

我正在使用 ASP .net 开发一个 c# 项目。

我有一个报告列表,每个报告都有一个超链接,它调用网络服务器,检索 一个 PDF,然后返回 PDF 供用户保存或打开:

ASPX 页面:

<table>
<tr>
<td>
    <a href="#" onclick="SubmitFormToOpenReport();">Open Report 1</a>
<td>
</tr>
...
</table>

ASP.Net:

context.Response.Clear();
context.Response.AddHeader("content-disposition", "attachment;filename=report.pdf");
context.Response.Charset = "";
context.Response.ContentType = "application/pdf";
context.Response.BinaryWrite(myReport);
context.Response.Flush();

这按预期工作,但我希望它也用更新的列表刷新页面。

我遇到了麻烦,因为单个请求/响应正在返返回告。

还有刷新页面的方法吗?

虽然有正确的回答,但请随意包含详细说明执行此操作的替代解决方案/想法的答案。

最佳答案

不幸的是,您当前的方法是死胡同。 HTTP 的本质是单一请求,单一响应。一个响应只能有一个代码——“好的,这是一些数据,请下载”。 “改为转到此处”是一个不同的代码。您正在描述更复杂的东西 - 一系列指令。首先“这是一个文件”,然后“将自己重定向到另一个资源”。使这项工作的意义应该是一个线索——浏览器应该什么时候重定向?当用户选择一个位置来保存文件?文件下载完成后?

要执行您所描述的操作,您可以让 JavaScript 在新窗口中打开 PDF 并重新加载当前窗口。

关于c# - ASP.net 附件然后刷新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1712928/

相关文章:

c# - 为什么在这种情况下编译器无法确定操作数的类型?

asp.net - 如何在我的 SharePoint 2013 博客中添加自定义段落样式?

javascript - 直接下载文件,而不是从 window.open(url)

c# - 如何在.net core 1.1 csproj中添加工具部分

c# - 从 GridView RowCommand 中的 CommandArgument 获取实体对象

c# - 从服务器端线程更新面板

c# - FIFO 订单中的 TPL 生产者消费者#

javascript - 防止页面刷新时显示模型窗口

c# - 如何检查 list<string> 是否包含任何字符串值

c# - Nhibernate 不级联删除