Welcome 微信登录

首页 / 网页编程 / ASP.NET / 学习ASP.NET MVC(二) 识别URL的Routing组件

学习ASP.NET MVC(二) 识别URL的Routing组件2011-10-14 博客园 ziqiu.zhang一.摘要

本篇文章从基础到深入的介绍ASP.NET MVC中的Routing组件. Routing翻译过来是"路由选择", 负责 ASP.NET MVC的第一个工作:识别URL, 将一个Url请求"路由"给Controller. 由于今天下午参加了博客园北 京俱乐部的聚会, 所以本篇文章的完工时间晚了点, 还好也是在今天发表, 总算兑现了"每日一篇"的承诺 . 不久丁学就会发布北京博客园聚会活动的资料了, 我在这里先预告了!

二.承上启下

第一篇文章中我们已经学会了如何使用ASP.NET MVC, 虽然其中还有很多的细节没有深入了解, 但是对 基本的处理流程已经有了认识:来了一个Url请求, 从中找到Controller和Action的值, 将请求传递给 Controller处理. Controller获取Model数据对象, 并且将Model传递给View, 最后View负责呈现页 面.

而Routing的作用就是负责分析Url, 从Url中识别参数, 如图:

这一讲就让我们细致的了解System.Web.Routing及其相关的扩展知识.

三.Routing的作用

第一讲中实例的首页地址是: localhost/home/index

我们发现访问上面的地址, 最后会传递给 HomeController中名为index的action(即HomeController类 中的index方法).

当然服务器端不会自己去实现这个功能, 关键点就是在Global.asax.cs文件中的下列代码:

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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);
}