Asp.Net 4.0 SEO增强之 UrlRouting
来源:互联网 发布:爆款淘宝说不合格商品 编辑:程序博客网 时间:2024/04/30 14:12
在.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规则的代码
01
public
static
void
RegisterRoutes(RouteCollection routes)
02
{
03
routes.Ignore(
"{resource}.axd/{*pathInfo}"
);
04
05
routes.MapPageRoute(
"blogs"
,
//给这个UrlRouting规则起一个名字
06
"archive/{year}/{month}/{date}/default.aspx"
,
//希望的友好Url地址格式
07
"~/blogs.aspx"
,
//映射到的aspx页面路径
08
false
,
//是否需要检查用户权限
09
new
RouteValueDictionary{ {
"year"
, DateTime.Now.Year },
10
{
"month"
, DateTime.Now.Month },
11
{
"date"
, DateTime.Now.Date}
12
},
//参数的默认值
13
new
RouteValueDictionary {
14
{
"year"
,
@"(19|20)/d{2}"
},
15
{
"month"
,
@"/d{1,2}"
},
16
{
"date"
,
@"/d{1,2}"
}
17
}
//参数的规则,我们在这里限制url中的年月日是我们想要的数据格式
18
);
19
20
}
21
22
void
Application_Start(
object
sender, EventArgs e)
23
{
24
//在Application_Start时注册的Routing规则
25
RegisterRoutes(RouteTable.Routes);
26
}
2. 在页面中使用UrlRouting参数值
1) 在后台代码中使用Route的值
1
protected
void
Page_Load(
object
sender, EventArgs e)
2
{
3
string
year = (
string
)RouteData.Values[
"year"
];
4
string
month = (
string
)RouteData.Values[
"month"
];
5
string
date = (
string
)RouteData.Values[
"date"
];
6
}
2) 在页面上使用
1
<
asp:Literal
ID
=
"literalYear"
runat
=
"server"
Text="<%$RouteValue:year %>"></
asp:Literal
>
2
-<
asp:Literal
ID
=
"literal1"
runat
=
"server"
Text="<%$RouteValue:month %>"></
asp:Literal
>
3
-<
asp:Literal
ID
=
"literal2"
runat
=
"server"
Text="<%$RouteValue:date %>"></
asp:Literal
>
3) 在DataSource中使用RouteParameter
1
<
asp:SqlDataSource
ID
=
"SqlDataSource1"
runat
=
"server"
ConnectionString="<%$ ConnectionStrings:TestDb %>"
2
SelectCommand="SELECT BlogID,BlogTitle FROM Blogs Where Category = @category">
3
<
SelectParameters
>
4
<
asp:RouteParameter
Name
=
"category"
RouteKey
=
"category"
/>
5
</
SelectParameters
>
6
</
asp:SqlDataSource
>
4) 在页面上显示RouteUrl
1
<
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 SEO增强之 UrlRouting
- Asp.Net 4.0 SEO增强之 UrlRouting
- Asp.Net 4.0 SEO增强之 UrlRouting
- ASP.NET MVC系列:UrlRouting
- ASP.NET MVC实践系列-UrlRouting
- ASP.NET4.0 新功能之 SEO 增强
- ASP.NET4.0 新功能之 SEO 增强 .
- ASP.Net 4.0 对SEO增强一:使用MetaDescription,MetaKeywords,RedirectPermanant等
- 精进不休 .NET 4.0 (3) - asp.net 4.0 新特性之动态数据(Dynamic Data)增强, AJAX增强; IDE之Visual Studio 2010增强
- 精进不休 .NET 4.0 (3) - asp.net 4.0 新特性之动态数据(Dynamic Data)增强, AJAX增强; IDE之Visual Studio 2010增强
- urlrouting
- ASP.net 4.0 针对SEO的改进
- ASP.net 4.0 针对SEO的改进
- Asp.net Mvc 重点教程一周年版 第二回 UrlRouting
- ASP.NET MVC 重点教程一周年版 第二回 UrlRouting
- ASP.NET 2.0增强之HtmlMeta类和HtmlHead类
- asp.net中的SEO优化
- asp.net 4.0 新特性之web.config的改进, ViewStateMode, ClientIDMode, EnablePersistedSelection, 控件的其他一些增强点
- 远程连接数据库语句
- 委托使用lambda表达式
- VS2010编译MFC程序出错的原因
- 选择每个订单的每种费用的数目,每行纪录为一个订单信息
- 重复数据删除技术解析
- Asp.Net 4.0 SEO增强之 UrlRouting
- 浅谈咨询行业知识管理应用
- cookie编程总结
- 使用Perl的HTML::TreeBuilder::XPath来解析网页内容
- vss是什么
- MD5速度
- oracle expdp/impdp 用法详解
- 一些Excel中间件的扩展方法
- 郑重推荐使用WPS 2010