我可以为每个http请求返回多种内容类型吗?

时间:2010-07-31 10:53:00

标签: asp.net server-side

报告系统包含网页上的可用报告列表。当用户点击报告时,新的浏览器窗口打开,服务器开始准备报告(winword文档),然后在2-10秒后将其发回。

处理程序中的代码如下所示:

 context.Response.AddHeader("Content-Disposition", 
   "attachment;filename=report.doc");
 context.Response.BinaryWrite(reportDocument);

我想在这个新窗口中显示“请稍候”。是否可以立即准备html内容(“请稍候”)将其发回,然后继续进行耗时的报告准备而不是关闭连接?

如果每个http请求无法返回多种内容类型,您有什么建议?

提前谢谢!

3 个答案:

答案 0 :(得分:2)

一个HttpResponse只能有单独的MIME类型。您可以弹出另一个窗口,该窗口又可以调用服务器,该服务器将使用winword报告文档进行响应。

答案 1 :(得分:1)

您可以创建一个带有重定向到二进制内容的html加载页面。

可以使用元重定向

完成重定向
<meta http-equiv="refresh" content="0;url=http://example.com/" />

wikipedia

的更多信息

答案 2 :(得分:1)

每个响应都不能发送2种类型的内容。您可以做的是呈现“请稍候”页面,其中包含对二进制内容的请求(如iframe)。