ASP.net附件然后刷新页面

时间:2009-11-11 04:01:48

标签: c# asp.net

我正在使用ASP .net。

开发一个c#项目

我有一个报告列表,每个报告都有一个超链接,它们调用Web服务器进行检索 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();

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

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

还有办法刷新页面吗?

虽然有正确的回复,但请随意添加详细说明替代解决方案/想法的答案。

2 个答案:

答案 0 :(得分:9)

不幸的是,你目前的方法是死路一条。 HTTP的本质是单个请求,单个响应。响应只能有一个代码 - “好的,这是一些数据,请下载它”。 “转而去”是一个不同的代码。你描述的东西要复杂得多 - 一系列指令。首先“这是一个文件”,然后“将自己重定向到另一个资源”。使这项工作的意义应该是一个线索 - 浏览器应该何时重定向?当用户选择保存文件的位置时?文件下载完成后?

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

答案 1 :(得分:-1)

尝试在response.redirect(request.url.tostring)

之后使用context.Response.Flush();