asp.net – 如何在响应流中将字符串插入到我想要的任何位置?
发布时间:2020-12-16 07:15:10 所属栏目:asp.Net 来源:网络整理
导读:可能有一种简单的方法可以做到这一点,但我看不到它…… 我创建了一个简单的Http模块,它在PreRequestHandler上启动一个计时器,并停止PostRequestHandler上的计时器来计算页面加载所花费的时间. 然后我创建一些简单的html并将我的结果写入Response.Write.因为
可能有一种简单的方法可以做到这一点,但我看不到它……
我创建了一个简单的Http模块,它在PreRequestHandler上启动一个计时器,并停止PostRequestHandler上的计时器来计算页面加载所花费的时间. 然后我创建一些简单的html并将我的结果写入Response.Write.因为我在PostRequestHandler中这样做,所以在< / html>之后添加我的结果.标签.这对测试很好,但我需要在页面需要验证的情况下. 我似乎无法弄清楚如何操作Response对象以在< / body>之前插入我的结果标签. Response.Write和Response.Output.Write没有这种灵活性,我无法看到使用Response作为字符串的方法.我错过了一些容易的事吗? 解决方法
为此,您必须实现自己的流对象,并将其用作响应的过滤器.
对于isntance: public class TimerStream : Stream { private Stream inner { get; set; } private StringBuilder responseHtml; public TimerStream(Stream inputStream) { inner = inputStream; responseHtml = new StringBuilder(); // Setup your timer } /* Filter overrides should pass through to inner,all but Write */ public override void Write(byte[] buffer,int offset,int count) { string bufferedHtml = System.Text.UTF8Encoding.UTF8.GetString (buffer,offset,count); Regex endTag = new Regex ("</html>",RegexOptions.IgnoreCase); if (!endTag.IsMatch (bufferedHtml)) { responseHtml.Append(bufferedHtml); } else { // insert timer html into buffer,then... responseHtml.Append (bufferedHtml); byte[] data = System.Text.UTF8Encoding.UTF8.GetBytes (responseHtml.ToString ()); inner.Write (data,data.Length); } } } 然后,在你的HttpModule中,你将它添加到你的BeginRequest: // Change the Stream filter HttpResponse response = context.Response; response.Filter = new TimerStream(context.Response.Filter); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – ASP.NET MVC3 View模型不是null,但在发回Co
- 关于asp.net 自定义分页控件
- asp.net – 如何阅读maxAllowedContentLength
- asp.net-mvc – 使用RadioButtons的可空值布尔的MVC3 Edito
- asp.net – 英国邮政编码查找流程的好例子
- asp.net – 如何禁用谷歌chrome的建议列表使用twitter boot
- asp.net-mvc-5 – ASP.NET MVC 5 Identity 2 PasswordSignI
- asp.net-mvc – 输出在剃刀通过变量?
- asp.net:DetailsView控件不解释html
- asp.net-mvc-3 – 从自定义授权属性访问角色
推荐文章
站长推荐
热点阅读