是否可以在ASP.NET中为Page的响应流写入多种内容类型?
我正在使用Sharepoint应用程序中的Web部件,该部件首先将一些HTML写入页面响应流,以便关闭模式对话框,然后将Word文档的字节数组作为附件打开,以便在浏览器。
以下代码说明了我想要做的事情:
var response = Page.Response;
response.ContentType = "text/html";
response.Write(
"<script type=\"text/javascript\">//javascript</script>");
response.Flush();
response.ContentType = "application/octet-stream";
response.AddHeader("Content-Disposition",
"attachment; filename=WordFile.docx");
response.BinaryWrite(byteArray);
response.End();
此代码为消息提供了一个例外:
服务器无法在发送HTTP标头后设置内容类型
这个代码有意义。有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
不,由于内容类型是在HTTP响应中发送的,并且您要发送一个响应,因此内容类型只能是一种类型。
也就是说,您必须让客户端发出两个单独的请求,一个用于获取HTML内容,一个用于获取Word文档。