首页 / HTML / MVC下压缩输入的HTML内容
MVC下压缩输入的HTML内容
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MVC下压缩输入的HTML内容,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2172字,纯文字阅读大概需要4分钟。
内容图文
![MVC下压缩输入的HTML内容](/upload/InfoBanner/zyjiaocheng/1149/952e512ecb854ffdae95681fc41e6abc.jpg)
在MVC下如何压缩输出的HTML代码,替换HTML代码中的空白,换行符等字符?
1.首先要了解MVC是如何输出HTML代码到客户端的,先了解下Controller这个类,里面有很多方法,我们需要的主要有两个:OnActionExecuting和OnResultExecuted
2.新建一个基类,继承自:System.Web.Mvc.Controller,代码如下:
- using System.IO;
- using System.Text;
- using System.Text.RegularExpressions;
- using System.Web;
- using System.Web.Mvc;
- using System.Web.UI;
- namespace WebApplication2.Controllers
- {
- /// <summary>
- /// Base
- /// </summary>
- public class BaseController : Controller
- {
- #region Private
- /// <summary>
- /// HtmlTextWriter
- /// </summary>
- private HtmlTextWriter tw;
- /// <summary>
- /// StringWriter
- /// </summary>
- private StringWriter sw;
- /// <summary>
- /// StringBuilder
- /// </summary>
- private StringBuilder sb;
- /// <summary>
- /// HttpWriter
- /// </summary>
- private HttpWriter output;
- #endregion
- /// <summary>
- /// 压缩html代码
- /// </summary>
- /// <param name="text">html代码</param>
- /// <returns></returns>
- private static string Compress(string text)
- {
- Regex reg = new Regex(@"\s*(</?[^\s/>]+[^>]*>)\s+(</?[^\s/>]+[^>]*>)\s*");
- text = reg.Replace(text, m => m.Groups[1].Value + m.Groups[2].Value);
- reg = new Regex(@"(?<=>)\s|\n|\t(?=<)");
- text = reg.Replace(text, string.Empty);
- return text;
- }
- /// <summary>
- /// 在执行Action的时候,就把需要的Writer存起来
- /// </summary>
- /// <param name="filterContext">上下文</param>
- protected override void OnActionExecuting(ActionExecutingContext filterContext)
- {
- sb = new StringBuilder();
- sw = new StringWriter(sb);
- tw = new HtmlTextWriter(sw);
- output = (HttpWriter)filterContext.RequestContext.HttpContext.Response.Output;
- filterContext.RequestContext.HttpContext.Response.Output = tw;
- base.OnActionExecuting(filterContext);
- }
- /// <summary>
- /// 在执行完成后,处理得到的HTML,并将他输出到前台
- /// </summary>
- /// <param name="filterContext"></param>
- protected override void OnResultExecuted(ResultExecutedContext filterContext)
- {
- string response = Compress(sb.ToString());
- output.Write(response);
- }
- }
- }
2.需要压缩的页面控制器,集成这个BaseController,就可以了,运行后的网页源代码如下图:
原文:http://www.cnblogs.com/webenh/p/6206215.html
内容总结
以上是互联网集市为您收集整理的MVC下压缩输入的HTML内容全部内容,希望文章能够帮你解决MVC下压缩输入的HTML内容所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。