`
380071587
  • 浏览: 480421 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

调整ViewState的位置,让你的asp.net页面对搜索引擎更友好

 
阅读更多

在asp.net页面中经常会出现一些ViewState的html标记,也许某些时候你会禁用ViewState,但是某些情况下你不得不使用它——因为它的便捷性,但是由于在默认情况下,ViewState的HTML标记总是在页面的最前面,而且都是一些没有意义的内容,一般的搜索引擎收录的时候就会将这些无意义的字符串收录进去,这样就会严重影响你所制作的网页在搜索引擎的排名。有没有解决办法?答案是有的,可以将ViewState的Html标记移到底部,不影响性能,对搜索引擎更友好。这种方法就是重写页面的Render,将ViewState的Html标记移到底部。

原始页面的HTML:

<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Top.aspx.cs"Inherits="Admin_Top"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>调整ViewState的位置,让你的asp.net页面对搜索引擎更友好</title>
</head>
<body>
<formid="form1"runat="server">
<div>

</div>
</form>
</body>
</html>

这个页面后台没有任何业务cs代码的情况下,得到的HTML代码如下:



<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

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

<div>

</div>
</form>
</body>
</html>
现在不改变前台aspx代码,重写Render方法,后台cs代码如下:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Text.RegularExpressions;
usingSystem.Text;

publicpartialclassAdmin_Top:System.Web.UI.Page
{
//ViewState的Html标记的正则表达式
privatestaticreadonlyRegexviewStateRegex=newRegex(@"(<inputtype=""hidden""name=""__VIEWSTATE""id=""__VIEWSTATE""value=""[w+//=]+""/>)",RegexOptions.Multiline|RegexOptions.Compiled);
//</form>标记的正则表达式
privatestaticreadonlyRegexendFormRegex=newRegex(@"</form>",RegexOptions.Multiline|RegexOptions.Compiled);

protectedoverridevoidRender(HtmlTextWriterwriter)
{
System.IO.StringWriterstringWriter
=newSystem.IO.StringWriter();
HtmlTextWriterhtmlWriter
=newHtmlTextWriter(stringWriter);
base.Render(htmlWriter);

stringhtml=stringWriter.ToString();
MatchviewStateMatch
=viewStateRegex.Match(html);
stringviewStateString=viewStateMatch.Captures[0].Value;//找出ViewState的Html标记
html=html.Remove(viewStateMatch.Index,viewStateMatch.Length);//替换掉ViewState的html标记

MatchendFormMath
=endFormRegex.Match(html,viewStateMatch.Index);
html
=html.Insert(endFormMath.Index,viewStateString);//将ViewState的Html标记插入到</form>标记之前
writer.Write(html);

}
protectedvoidPage_Load(objectsender,EventArgse)
{

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


<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

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

</div>

<div>

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

相关推荐

    ASP.NET实现的论坛BBS系统

    10. **SEO优化**:对于提升论坛的搜索引擎可见性,系统可能采用了URL重写等SEO技术,使动态网页看起来更像静态页面,便于搜索引擎抓取。 综上所述,ASP.NET实现的论坛BBS系统利用了ASP.NET框架的多个核心特性,构建...

    ASP.NET程序设计项目开发教程C#版-PPT课件

    8. **路由和URL重写**:ASP.NET的路由系统允许自定义友好的URL,提高用户体验,并支持URL重写,使URL更具描述性,利于SEO(搜索引擎优化)。 9. **身份验证和授权**:ASP.NET提供内置的身份验证和授权服务,如Forms...

    ASP.NET页面跳转方法研究

    - **定义**:ASP.NET提供URL重写和路由功能,可以在不改变页面实际位置的情况下改变URL展现形式。 - **优点**:可以创建更友好的URL,改善SEO;方便地管理应用程序的结构。 - **缺点**:配置相对复杂,需要对URL...

    asp.net 网络论坛

    对于提高搜索引擎可见性,论坛需要考虑SEO最佳实践,比如使用友好的URL、添加元标签、优化页面内容等。 综上所述,构建一个ASP.NET网络论坛涉及到多个技术层面,包括前端界面设计、后端数据处理、用户认证、权限...

    ASP.NET 实现的备忘录

    5. **状态管理**:备忘录的创建和修改需要保持用户的状态信息,ASP.NET提供了多种状态管理机制,如Session、ViewState和Cookie,来在请求之间保存信息。 6. **路由与URL重写**:ASP.NET MVC中的路由系统允许开发者...

    asp.net设计(未完成)asp.net设计(未完成)

    5. **路由**:ASP.NET支持URL路由,允许自定义友好的URL结构,提高用户体验和搜索引擎优化。 6. **数据访问**:ADO.NET或Entity Framework是ASP.NET中常用的数据访问技术,用于连接数据库并执行CRUD操作。 7. **...

    使用ASP.NET技术开发网上书店3

    网上书店需要考虑搜索引擎优化(SEO),ASP.NET提供URL重写功能,可以生成更友好的URL,有助于提高搜索引擎的可见性。 综上所述,使用ASP.NET开发网上书店涉及的技术点广泛,从页面设计、数据管理到安全性和性能...

    asp.net MVC2 教程

    - **MVC**:支持自定义路由规则,可以创建简洁且对搜索引擎友好的URL。 5. **灵活性**: - **Web Forms**:提供了许多内置功能,但在某些场景下可能会显得过于臃肿。 - **MVC**:提供了更高的灵活性和控制度,更...

    asp.net开发的电子商务系统

    电子商务系统需要良好的搜索引擎可见性,ASP.NET MVC支持自定义路由,可以创建SEO友好的URL结构。 10. **部署和扩展** ASP.NET支持IIS或Azure等平台的快速部署,系统可能还设计了模块化和插件化,便于未来功能...

    ASP.NET 2.0电子商务开发实战

    11. **SEO优化**:为了吸引和留住用户,电子商务网站需要对搜索引擎友好。这部分可能会讨论URL重写、元标签设置、网站地图生成等SEO策略。 12. **移动设备支持**:考虑到移动互联网的崛起,书中可能也会涉及到响应...

    ASP.NET编程百例

    6. **路由**:ASP.NET允许使用URL路由来定义友好的、可搜索引擎优化的URL,替代传统的基于查询字符串的URL。 7. **ASP.NET MVC**:一个模型-视图-控制器架构,强调分离关注点,提供更灵活的开发模式。 8. **Web ...

    asp.net参考文件

    5. **路由(Routing)**:ASP.NET允许自定义URL模式,通过路由系统可以创建更友好的、可搜索引擎优化的URL。 6. **身份验证(Authentication)**:ASP.NET提供了多种身份验证方式,如Windows身份验证、Forms身份验证和...

    C#商城系统 C#+ASP.NET开发

    9. **SEO优化**:为了提升搜索引擎可见性,系统可能实现了URL重写和元标签管理,使网页对搜索引擎友好。 10. **安全性**:考虑到电子商务的安全性,系统会采取加密措施保护用户数据,如HTTPS协议、防止SQL注入和跨...

    ASP.NET 2.0快速入门(16):ASP.NET 2.0 应用开发小技巧

    站点地图提供了一种组织网站结构的方法,它可以帮助生成面包屑导航、菜单以及搜索引擎友好的URL。 6. **数据绑定(Data Binding)**: 数据绑定是ASP.NET的核心特性之一,如Repeater、GridView和ListView等控件可以...

    [搜索链接].Net版智能自动链_bylinkacc(ASP.NET源码).rar

    这个系统的主要功能是自动化管理和优化网站的内部链接,提高搜索引擎的友好性,进而提升网站的SEO(搜索引擎优化)效果。"bylinkacc"可能是该系统的开发者或者公司名称。 【描述】中的内容与标题一致,进一步确认了...

    ASP.NET 论坛程序

    此外,SEO优化也是现代论坛程序不可或缺的部分,通过使用URL重写和Meta标签,可以使搜索引擎更好地理解和索引论坛内容。 ASP.NET论坛程序的开发还涉及到错误处理、日志记录、性能优化等方面。开发者通常会使用调试...

    ASP.NET深入解析

    **ASP.NET深入解析** ASP.NET是由微软开发的一种用于构建Web应用程序的框架,它基于.NET Framework,为开发者提供了高效、...通过深入阅读相关书籍,尤其是针对初学者的指导,可以逐步建立对ASP.NET全面而扎实的理解。

    LevenBlog2.0(Asp.Net Mvc开发)源码

    启用MVC的URLRouting,相比urlrewrite,具有更友好的url,且能更自由的更换url扩展名,更易于搜索引擎. mvc框架无ViewState,减少带宽浪费 使用多层开发模式开发,更灵活的构架,理论上支持所有.net支持的数据库. 提交...

    ASP.NET 行家应用(最全最实用的一本ASP.NET书)

    此外,还会讲解页面间导航和URL重写,这些都是构建用户友好和可搜索引擎优化(SEO)的网站的关键。 ASP.NET的安全性也是重要的章节,可能包含身份验证(Forms Authentication)、授权(Role-based Authorization)...

    静态页面(asp.net 2005 + sqlserver 2005)

    在IT行业中,静态页面是指不含有服务器端动态脚本或者...通过动态生成静态页面,既实现了动态内容的展示,又保持了静态页面的加载速度和搜索引擎友好性。这展示了如何在实际开发中灵活运用技术栈,以满足特定项目需求。

Global site tag (gtag.js) - Google Analytics