您现在的位置是:首页 >

aspnet网站开发教程 浅谈ASP.NET 4.0 SEO增强中的UrlRouting

火烧 2022-06-15 10:32:17 1068
浅谈ASP.NET 4.0 SEO增强中的UrlRouti g   在 NET 之前我们为了做出搜索引擎友好的 对用户也友好的url都是需要自己实现Url重写 现在不需要了    NET 为我们做这一

浅谈ASP.NET 4.0 SEO增强中的UrlRouting  

  在 NET 之前我们为了做出搜索引擎友好的 对用户也友好的url都是需要自己实现Url重写 现在不需要了

   NET 为我们做这一切 UrlRouting之所以称之为Routing

  是因为它不但实现了Url重写还可以通过参数得到重写后的Url在页面上使用

   Url Routing 的通常用法

  UrlRouting在Asp NET MVC项目中被广泛使用 在MVC中很好用 所以移植到了webform中

  我们先看下在webform中的使用方式

  假定一个使用场景 我们需要做博客每日文章的页面 我们希望的url地址是

  /archive/ / / /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 @ ( | )d{ } }           { month @ d{ } }           { date @ d{ } }

  } //参数的规则 我们在这里限制url中的年月日是我们想要的数据格式       );    }

  void Application_Start(object sender EventArgs e)    {

  //在Application_Start时注册的Routing规则      RegisterRoutes(RouteTable Routes);   }

  在页面中使用UrlRouting参数值

   ) 在后台代码中使用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 ];

  }

   ) 在页面上使用

  <asp:Literal ID= literalYear runat= server Text= <%$RouteValue:year %> ></asp:Literal>

   <asp:Literal ID= literal runat= server Text= <%$RouteValue:month %> ></asp:Literal>

   <asp:Literal ID= literal runat= server Text= <%$RouteValue:date %> ></asp:Literal> 

   )在DataSource中使用RouteParameter

  <asp:SqlDataSource ID= SqlDataSource runat= server ConnectionString= <%$ ConnectionStrings:TestDb %>

  SelectCommand= SELECT BlogID BlogTitle FROM Blogs Where Category = @category >    <SelectParameters>

  <asp:RouteParameter Name= category RouteKey= category />    </SelectParameters>    </asp:SqlDataSource>

   ) 在页面上显示RouteUrl

  <a <%=GetRouteUrl( blogs new {year= month= date= }) %> > 年 月 日的博客</a>

   UrlRouting和UrlRewrite的区别

aspnet网站开发教程 浅谈ASP.NET 4.0 SEO增强中的UrlRouting

  UrlRouting相对于Url重写是一个比较新的事物 UrlRouting的长处是可以做双向转换 既可以做url重写

  还可以根据一些参数获得重写后的Url地址

lishixinzhi/Article/program/net/201311/12223  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码