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



我似乎永远无法在 .net 上找到任何文档,而官方文档(如果它们是正确的)是一个绝望的迷宫。

我将使用jQuery的用户重定向到新页面上的HttpHandler,在那里我动态构建并发送一个html表(并称之为excel文件)。 借助堆叠器,我可以毫无延迟地构建和发送文件(即使是巨大的文件)。

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

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

"/"应用程序中的服务器错误。发送 HTTP 标头后,服务器无法追加标头。

有什么方法可以实现我想要的吗?

提前非常感谢!

您需要的是一个重定向到下载页面的临时登录页面。

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

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

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

尽管必须始终在正文之前发送任何类型的标头,但无法在向用户显示的响应流中编写通知,因为用户还会将通知保存到 excel 文件。

因此,我认为您将需要一个新的登录页面,其中包含通知和某种javascript或元重定向(或者超链接或按钮)到强制创建和下载excel的URL。

最新更新