繁体   English   中英

asp.net响应双重内容类型

[英]asp.net response dual content type

我正在for循环中使用Page.Response.Write(“”)将大量的excel内容数据发送到浏览器。

在开始循环之前,我将reponse.context属性的竞争类型更改为“ ms-excel”。

如果在for循环中有异常,我会尝试通过注册HTML启动脚本块并将其写入浏览器来向浏览器弹出错误消息。 在写之前,我将内容类型改回为text / html。 但我收到一条错误消息,说发送HTTP标头后无法更改内容类型。

如何将for循环期间发生的错误通知浏览器? 是否可以在同一浏览器选项卡中进行多个响应? 顺便说一句,现在我不想使用ASP.NET AJAX。

您是否尝试过Response.ClearHeaders(); 在更改上下文类型之前?

如果由于Response.Write导致问题而无法解决问题,则可以考虑在确定内容类型然后设置标题之前采用构建字符串的方法。

  • 循环浏览内容并添加到StringBuilder
  • 如果没有错误,请将contenttype设置为ms-excel并写出SB
  • 如果有错误,请保留contenttype,因为它是根据需要写出错误消息的。

Page.Response.Write(“”)会将数据发送到浏览器。 当您执行此操作时,浏览器需要知道其获取的内容类型才能正确显示。 如果您已经告诉浏览器您拥有什么样的内容(即使您没有,即使您已经在使用Response.Write整理数据,它将使用我认为是text / html的默认值),那么您将无法把它收回。 无论您对客户说的是什么,您都无法收回。 解决问题的方法是按照Doozer的建议缓存答复。

/提比

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM