HttpHandler在发送文件之前写入重定向页面

时间:2012-11-14 14:57:14

标签: c# jquery file httphandler response.write

我似乎永远无法在.net上找到任何文档,官方版本(当它们是正确的时候)是一个毫无希望的迷宫。

我使用jQuery将用户重定向到新页面上的HttpHandler,我在其中构建并发送html表(并将其称为excel文件)。由于堆叠器,我可以毫不拖延地构建和发送文件(即使是很大的文件)。

我想在新页面上告诉用户我正在构建文件等,因为正在构建和发送文件。

当我在发送excel标题之前执行context.response.write时,我得到:

Server Error in '/' Application.

Server cannot append header after HTTP headers have been sent.

有没有办法达到我想要的目的?

非常感谢提前!

2 个答案:

答案 0 :(得分:0)

你到底想要达到什么目的?据我所知,你正在构建某种excel表并将其发送给客户。我假设客户端将您的内容识别为Excel工作表,您尝试发送一些响应头(例如mime类型)。

虽然您必须始终在正文之前发送任何类型的标题,但您将无法在向用户显示的响应流中写入通知,因为用户还将保存您对excel文件的通知。

所以我认为你需要一个新的登陆页面,上面会有一个通知,还有一些javascript或元重定向(或者是超链接或按钮),它会强制创建和下载excel。

答案 1 :(得分:0)

您需要的是一个临时目标网页,可以重定向到下载页面。

在临时页面上,您可以获得消息和一个小脚本,以便将用户发送到下载。

<body>
<div> Your file is getting created... Please wait patiently.
</div>
<script>
    window.location.href = 'http://yoursite.com/documentpage/blah/foo/bar';
</script>
</body>