aspnet网站开发教程 浅谈ASP.NET 4.0 SEO增强中的UrlRouting
浅谈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的区别

UrlRouting相对于Url重写是一个比较新的事物 UrlRouting的长处是可以做双向转换 既可以做url重写
还可以根据一些参数获得重写后的Url地址
lishixinzhi/Article/program/net/201311/12223