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

Asp.Net 4.0 SEO增强之UrlRouting

阅读更多

asp.net 4.0 mvc 在项目中的使用.

在.Net 4.0之前我们为了做出搜索引擎友好的,对用户也友好的url都是需要自己实现Url重写,现在不需要了,.Net 4.0为我们做这一切。UrlRouting之所以称之为Routing是因为它不但实现了Url重写还可以通过参数得到重写后的Url在页面上使用。

1. Url Routing 的通常用法

UrlRouting在Asp.Net Mvc项目中被广泛使用,在Mvc中很好用,所以移植到了webform中,我们先看下在webform中的使用方式

假定一个使用场景:我们需要做博客每日文章的页面,我们希望的url地址是:/archive/2010/05/10/default.aspx

这个地址将被映射到~/posts.aspx文件上

要使用UrlRouting,需要将UrlRouting的规则注册到RouteTable中,如下Global文件中注册Routing规则的代码

以下为引用的内容:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.Ignore("{resource}.axd/{*pathInfo}");

    routes.MapPageRoute("blogs", //给这个UrlRouting规则起一个名字
        "archive/{year}/{month}/{date}/default.aspx", //希望的友好Url地址格式
        "~/blogs.aspx", //映射到的aspx页面路径
        false, //是否需要检查用户权限
        new RouteValueDictionary{ { "year", DateTime.Now.Year },
            { "month", DateTime.Now.Month },
            {"date", DateTime.Now.Date}
        },//参数的默认值
        new RouteValueDictionary {
            {"year",@"(19|20)\d{2}"},
            {"month",@"\d{1,2}"},
            {"date",@"\d{1,2}"}
        } //参数的规则,我们在这里限制url中的年月日是我们想要的数据格式
        );

<script language="JavaScript" src="http://www.im5173.com/ads/ads728x15.js" type="text/javascript"></script>

}

void Application_Start(object sender, EventArgs e)
{
    //在Application_Start时注册的Routing规则
    RegisterRoutes(RouteTable.Routes);
}

2. 在页面中使用UrlRouting参数值

1) 在后台代码中使用Route的值

以下为引用的内容:

protected void Page_Load(object sender, EventArgs e)
{
    string year = (string)RouteData.Values["year"];
    string month = (string)RouteData.Values["month"];
    string date = (string)RouteData.Values["date"];
}

2) 在页面上使用

以下为引用的内容:

<asp:Literal ID="literalYear" runat="server" Text="<%$RouteValue:year %>"></asp:Literal>
    -<asp:Literal ID="literal1" runat="server" Text="<%$RouteValue:month %>"></asp:Literal>
    -<asp:Literal ID="literal2" runat="server" Text="<%$RouteValue:date %>"></asp:Literal>

3) 在DataSource中使用RouteParameter

以下为引用的内容:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:TestDb %>"
    SelectCommand="SELECT BlogID,BlogTitle FROM Blogs Where Category = @category">
    <SelectParameters>
        <asp:RouteParameter Name="category" RouteKey="category" />
    </SelectParameters>
</asp:SqlDataSource>

4) 在页面上显示RouteUrl

以下为引用的内容:

<a href='<%=GetRouteUrl("blogs",new {year=2010,month=05,date=05}) %>'>2010年5月1日的博客</a>

3. UrlRouting和UrlRewrite的区别

UrlRouting相对于Url重写是一个比较新的事物,UrlRouting的长处是可以做双向转换,既可以做url重写,还可以根据一些参数获得重写后的Url地址,但是它也有自己的不足之处,比如说如果你想连域名一起重写,比如博客地址yukaizhao.cnblogs.com这样的重写,UrlRouting就做不到了,只能用UrlRewrite。

分享到:
评论

相关推荐

    asp.net 4.0 编程

    6. **路由(Routing)**:ASP.NET 4.0引入了URL路由功能,使得可以创建更加友好的、可自定义的URL,增强了用户体验和搜索引擎友好性。 7. **配置和部署**:ASP.NET 4.0提供了强大的配置管理工具,允许开发者在不...

    asp.net mvc 4.0 框架揭秘书和源码

    4. **路由(Routing)**:ASP.NET MVC的路由系统允许自定义URL模式,使得URL更加用户友好且易于SEO优化。路由根据URL规则将请求映射到相应的控制器和动作。 5. **过滤器(Filters)**:过滤器是一种可重用的组件,...

    IIS 7部署:ASP.NET 4.0路由和Ext.NET

    ASP.NET路由是.NET Framework 3.5 SP1引入的一项功能,但在ASP.NET 4.0中得到了进一步增强。路由允许开发者定义自定义URL模式,而不是传统的基于文件路径的URL。这使得URL更加用户友好,也便于搜索引擎优化(SEO)。...

    asp.net c# Url重写和无扩展名Url重写

    ASP.NET C# URL重写和无扩展名URL重写是两个关键的Web开发技术,用于改进网站的用户体验和搜索引擎优化(SEO)。它们涉及到对应用程序内部请求处理的方式,使得用户可以使用更加友好、易于记忆的URL,同时保持后端...

    asp.net mvc基础入门

    总之,ASP.NET MVC为Web开发提供了一种高效、可测试和灵活的解决方案,通过分离职责和充分利用URL Routing,使应用程序更加易于理解和维护。对于初学者来说,掌握ASP.NET MVC的基础知识能够提升开发效率,并为参与...

    asp.net 伪链接实例(完整版)

    在这个“ASP.NET 伪链接实例(完整版)”中,我们主要探讨的是如何在ASP.NET环境中实现伪链接(也称为伪静态链接)的技术,这对于搜索引擎优化(SEO)和提升用户体验具有重要意义。 伪链接,顾名思义,是看上去像...

    ASP.NET的33种常用技巧

    ASP.NET是微软公司开发的一种用于构建Web应用程序的框架,它基于.NET Framework,为开发者提供了丰富的功能和工具,简化了Web应用的开发过程。本篇将深入探讨ASP.NET的33种常用技巧,帮助你提升开发效率,打造更高效...

    ASP.NET中搜索引擎友好的URL

    ASP.NET中的搜索引擎友好URL(Search Engine Friendly URLs)是提高网站可读性和SEO(搜索引擎优化)的关键因素。在传统的ASP.NET应用程序中,URL往往包含了过多的参数和动态标识符,这不利于用户理解和搜索引擎抓取...

    利用httphandler实现网站伪静态

    在ASP.NET中,可以使用`System.Web.Routing`库来实现URL路由。在Global.asax文件中,我们可以添加以下代码: ```csharp protected void Application_Start(object sender, EventArgs e) { RegisterRoutes...

    web httpmode test

    在ASP.NET应用中,URL重写是一种常见的技术,它允许我们改变实际请求的URL,以达到隐藏真实路径、优化SEO或者模拟不存在的目录结构等目的。在这个问题中,用户希望在不实际创建"123"目录的情况下,通过...

Global site tag (gtag.js) - Google Analytics