使用过滤器过滤asp.net mvc输出内容

在asp.net程序的开发中,有时我们需要对输出的Html代码进行一些后续的处理。如压缩Html代码。实现的方法很简单,我们只需要扩展一个自定义的过滤器。

首先我们创建一个将html转换成大写的过滤器:

 1 public class CapitalFilter : Stream
 2     {
 3         private Stream _responseStream;
 4 
 5         public CapitalFilter(Stream responseStream)
 6         {
 7             _responseStream = responseStream;
 8         }
 9 
10         public override void Flush()
11         {
12         }
13 
14         public override int Read(byte[] buffer, int offset, int count)
15         {
16             return _responseStream.Read(buffer, offset, count);
17         }
18 
19         public override void Write(byte[] buffer, int offset, int count)
20         {
21             string html = System.Text.UTF8Encoding.UTF8.GetString(buffer);
22 
23             html = html.ToUpper();
24 
25             buffer = System.Text.UTF8Encoding.UTF8.GetBytes(html);
26 
27             _responseStream.Write(buffer, offset, count);
28         }
29     }

因为Response.Filter是一个使用装饰着模式的输出过滤器,所以只需要添加如下代码:

Response.Filter = new CapitalFilter(Response.Filter);
原文地址:https://www.cnblogs.com/hyl8218/p/2553233.html