将多种内容类型写入Web部件页面响应流

时间:2011-09-27 19:08:58

标签: c# asp.net content-type

是否可以在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标头后设置内容类型

这个代码有意义。有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

不,由于内容类型是在HTTP响应中发送的,并且您要发送一个响应,因此内容类型只能是一种类型。

也就是说,您必须让客户端发出两个单独的请求,一个用于获取HTML内容,一个用于获取Word文档。