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。
分享到:
相关推荐
6. **路由(Routing)**:ASP.NET 4.0引入了URL路由功能,使得可以创建更加友好的、可自定义的URL,增强了用户体验和搜索引擎友好性。 7. **配置和部署**:ASP.NET 4.0提供了强大的配置管理工具,允许开发者在不...
4. **路由(Routing)**:ASP.NET MVC的路由系统允许自定义URL模式,使得URL更加用户友好且易于SEO优化。路由根据URL规则将请求映射到相应的控制器和动作。 5. **过滤器(Filters)**:过滤器是一种可重用的组件,...
ASP.NET路由是.NET Framework 3.5 SP1引入的一项功能,但在ASP.NET 4.0中得到了进一步增强。路由允许开发者定义自定义URL模式,而不是传统的基于文件路径的URL。这使得URL更加用户友好,也便于搜索引擎优化(SEO)。...
ASP.NET C# URL重写和无扩展名URL重写是两个关键的Web开发技术,用于改进网站的用户体验和搜索引擎优化(SEO)。它们涉及到对应用程序内部请求处理的方式,使得用户可以使用更加友好、易于记忆的URL,同时保持后端...
总之,ASP.NET MVC为Web开发提供了一种高效、可测试和灵活的解决方案,通过分离职责和充分利用URL Routing,使应用程序更加易于理解和维护。对于初学者来说,掌握ASP.NET MVC的基础知识能够提升开发效率,并为参与...
在这个“ASP.NET 伪链接实例(完整版)”中,我们主要探讨的是如何在ASP.NET环境中实现伪链接(也称为伪静态链接)的技术,这对于搜索引擎优化(SEO)和提升用户体验具有重要意义。 伪链接,顾名思义,是看上去像...
ASP.NET是微软公司开发的一种用于构建Web应用程序的框架,它基于.NET Framework,为开发者提供了丰富的功能和工具,简化了Web应用的开发过程。本篇将深入探讨ASP.NET的33种常用技巧,帮助你提升开发效率,打造更高效...
ASP.NET中的搜索引擎友好URL(Search Engine Friendly URLs)是提高网站可读性和SEO(搜索引擎优化)的关键因素。在传统的ASP.NET应用程序中,URL往往包含了过多的参数和动态标识符,这不利于用户理解和搜索引擎抓取...
在ASP.NET中,可以使用`System.Web.Routing`库来实现URL路由。在Global.asax文件中,我们可以添加以下代码: ```csharp protected void Application_Start(object sender, EventArgs e) { RegisterRoutes...
在ASP.NET应用中,URL重写是一种常见的技术,它允许我们改变实际请求的URL,以达到隐藏真实路径、优化SEO或者模拟不存在的目录结构等目的。在这个问题中,用户希望在不实际创建"123"目录的情况下,通过...