Asp.net MVC学习笔记2 -----URL Route
2010-09-17 16:48
495 查看
在本教程,您将学习到如何将一个的自定义的route添加到asp.net mvc 中,您将会知道怎么将Global.asax文件中的默认的route 咏一个自定义的Route替换,
在一写简单的asp.net mvc应用程序中, 默认的路由表(detault route table)将会工作的很好,但是,你可能会发现你有的时候有一些特殊的要求,在那种情况下,你可以自定义一个route。
想象一下,比如,你正在写一个博客应用程序,我们可能有的时候需要向这样的一个地址:
/Archive/12-25-2009
当一个用户请求时,你想返回一个像12/25/2009这样的对应日期。为了能生成这样发的请求,你需要新建一个自定义的route.
在下面的Gloabel.asac文件中包含了一个新的自定义Route,命名为"Blog"
注意:加入到 route table 中的route的顺序是很重要的,我们新添加的自定义的Blog路由需要添加到Defualte路由前面,如果弄成相反的。那么这个默认的route将永远会被调用而不会去调用我们自定义的route.
自定义的Blog route匹配任何以/Archive/.So,所以它将匹配下面所有的网址。
/Archive/12-25-2009
/Archive/10-6-2004
/Archive/apple
自定义的route 将会匹配一个叫做的Archive的控制器,同时调用Entry() action,当Entry)_方法被调用的时候,
注意:Entry()方法带的参数是一个时间格式的,如果用户输入的参数不能转化为datetime类型,这将会在转换的时候出现一个错误
在一写简单的asp.net mvc应用程序中, 默认的路由表(detault route table)将会工作的很好,但是,你可能会发现你有的时候有一些特殊的要求,在那种情况下,你可以自定义一个route。
想象一下,比如,你正在写一个博客应用程序,我们可能有的时候需要向这样的一个地址:
/Archive/12-25-2009
当一个用户请求时,你想返回一个像12/25/2009这样的对应日期。为了能生成这样发的请求,你需要新建一个自定义的route.
在下面的Gloabel.asac文件中包含了一个新的自定义Route,命名为"Blog"
using System.Web.Mvc; using System.Web.Routing; namespace MvcApplication1 { public class MvcApplication : System.Web.HttpApplication { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Blog", // Route name "Archive/{entryDate}", // URL with parameters new { controller = "Archive", action = "Entry" } // Parameter defaults ); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" } // Parameter defaults ); } protected void Application_Start() { RegisterRoutes(RouteTable.Routes); } } }
注意:加入到 route table 中的route的顺序是很重要的,我们新添加的自定义的Blog路由需要添加到Defualte路由前面,如果弄成相反的。那么这个默认的route将永远会被调用而不会去调用我们自定义的route.
自定义的Blog route匹配任何以/Archive/.So,所以它将匹配下面所有的网址。
/Archive/12-25-2009
/Archive/10-6-2004
/Archive/apple
自定义的route 将会匹配一个叫做的Archive的控制器,同时调用Entry() action,当Entry)_方法被调用的时候,
using System; using System.Web.Mvc; namespace MvcApplication1.Controllers { public class ArchiveController : Controller { public string Entry(DateTime entryDate) { return "You requested the entry from " + entryDate.ToString(); } } }
注意:Entry()方法带的参数是一个时间格式的,如果用户输入的参数不能转化为datetime类型,这将会在转换的时候出现一个错误
相关文章推荐
- ASP.NET MVC 3 学习笔记系列之Music Store(4)
- 《ASP.NET MVC 4 实战》学习笔记 11:模型绑定器与值提供器
- ASP.NET MVC学习笔记2
- ASP.NET MVC学习笔记-----使用自定义的View Engine
- ASP.Net MVC开发基础学习笔记(5):区域、模板页与WebAPI初步
- ASP.NET MVC Web API 学习笔记----HttpClient简介
- asp.net mvc 4 高级编程学习笔记:第三章 视图(2)
- ASP.NET MVC 3.0 Razor 学习笔记之四
- ASP.NET MVC学习笔记一
- 【jqGrid for ASP.NET MVC Documentation】.学习笔记.1.介绍
- 【ASP.NET MVC 学习笔记】- 02 Attribute
- 【ASP.NET MVC 学习笔记】- 05 依赖注入工具Ninject
- 《Pro ASP.NET MVC 3 Framework》学习笔记之二十四【Controllers和Actions】
- [学习笔记]--ASP.Net MVC
- 【学习笔记】asp.net MVC!
- ASP.NET MVC学习笔记-----Filter
- ASP.NET MVC学习笔记3
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.4.MVC的主要工具-使用Moq
- ASP.NET MVC 学习笔记-7.自定义配置信息
- 《Pro ASP.NET MVC 3 Framework》学习笔记之二十【URL和Routing】