• Render 使用


    Page页面文件,重新Render 方法,目的是把页面的ViewState信息放在最后,利于页面展示速度和SEO优化。

    Render方法对于重新Html控件还是很好用的。

        private static readonly Regex viewStateRegex = new Regex("<input type="hidden" name="__VIEWSTATE".*/>", RegexOptions.IgnoreCase); //过滤viewstate html标记的正则表达式
        private static readonly Regex endFormRegex = new Regex(@"</form>", RegexOptions.Multiline | RegexOptions.Compiled);
    
        protected override void Render(HtmlTextWriter writer)
        {
            System.IO.StringWriter stringWriter = new System.IO.StringWriter();
            HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
            base.Render(htmlWriter);
    
            string html = stringWriter.ToString();
            Match viewStateMatch = viewStateRegex.Match(html);
            string viewStateString = viewStateMatch.Captures[0].Value;//找出ViewState的Html标记 目的把viewstate的内容放到页面FORM的最后面加快加载速度和搜索抓录
            //  viewStateString = "<input type=/"hidden/" name=/"__VIEWSTATE/" id=/"__VIEWSTATE/" value=/"/" />"; //仿博客园
    
            html = html.Remove(viewStateMatch.Index, viewStateMatch.Length);//替换掉ViewState的html标记
    
            Match endFormMath = endFormRegex.Match(html, viewStateMatch.Index);
            html = html.Insert(endFormMath.Index, viewStateString);//将ViewState的Html标记插入到</form>标记之前
            writer.Write(html);
    
        }
    View Code

    做一头勤恳的技术牛

  • 相关阅读:
    BFC——块级格式化上下文
    深入浅出——float
    NodeJS 学习记录
    JavaScript高级程序设计 第六章 面向对象程序设计
    软件项目管理课感想
    第八周PSP 新折线图和饼图 个人时间管理
    第七周PSP 新折线图和饼图 个人时间管理
    Alpha、伪Beta 发布个人感想与体会
    ”单元测试“理解与感悟
    编程
  • 原文地址:https://www.cnblogs.com/chinaagan/p/3191349.html
Copyright © 2020-2023  润新知