response.write在html结束标记之后写,如何替换html中的响应中的字符串?

时间:2014-09-05 13:24:06

标签: c# global-asax response.write

global.asax中的

来衡量onbeginrequest(启动秒表)和onendrequest(计算差异)中的请求执行时间。

然后在最后请求中使用结果response.write

但它会在结束html标记之后写入结果。 基本上会附加到结尾。

目前的代码行是:

HttpContext.Current.Response.Write(elapsedTime);

是否有一种简单的方法可以使用响应写入中的实际结果字符串将REPLACE字符串中的字符串:: actualResult ::写入REPLACE?

我尝试过很多东西,包括在网上搜索,但似乎没有人需要这个,或者我很难搜索。我以为我可以在某种程度上得到整个回应并从那里取而代之但不确定如何做到...... ...Response.GetTheEnitreResponse??.Replace之类的东西...当然这只是一厢情愿的想法;)

日Thnx

2 个答案:

答案 0 :(得分:0)

您没有指定是否使用Web表单,MVC,网页等,但通常这些框架已缓冲响应,该响应已由用户正在访问的任何页面输出。在所有页面内容(通常用html结束标记关闭)输出到缓冲区之后,onendrequest中的代码即将到来。因此,当您执行Response.Write时,您将附加到该html,因此它位于关闭的html标记之外。

如果您希望在页面上显示时间,则必须解析响应并注入字符串。这在ASP.NET中的Page类之外很难做到。

凌乱,还有更好的选择。 Tracing通常是处理这些类型的事物的方式。

您可能需要考虑将此信息写入Glimpse跟踪或以某种方式挂钩到其显示中...我对Glimpse说不够。

答案 1 :(得分:0)

您可以将结果存储在HttpContext.Items中,然后在视图/页面上访问它,而不是将已过去的值写入响应:

HttpContext.Current.Items.Add("elapsed", elapsed);

HttpContext.Items Property