快速业务通道

调整ViewState的位置,让ASP.NET页面对搜索引擎更友好

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-04-12
rivate 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标记
        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);
       
    }
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}
最后生成的Html页面的代码:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
    调整ViewState的位置,让你的asp.net页面对搜索引擎更友好
</title></head>
<body>
    <form name="form1" method="post" action="Top.aspx" id="form1">
<div>

</div>

    <div>
   
    </div>
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzgzNDMwNTMzZGTKRk3xYdpqlKIfqyg44evx9dxYpQ==" /></form>
</body>
</html>最后的结果大家也看到了,确实移动了ViewState的html标记的位置,这样对搜索引擎更友好。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号