(ASP.NET MVC学习)url Routing 使用与介绍

本文介绍了ASP.NET MVC中路由(Route)的基本概念及其工作原理。详细解释了如何通过配置Routing规则来解析URL,包括如何设置默认控制器、操作及参数,以及如何限制传入的参数类型。

Route就是路由的意思,它的工作在MVC中就是按照一定的规则解析URL,Routing也并不是ASP.NET MVC框架下的组件,是独立的,也就是说不一定只有在ASP.NET MVC下才能使用URL Routing。

Routing在ASP.NET MVC中的作用,asp.net mvc是靠Routing进行驱动使用的,并且根据在程序中定制的Routing规则解析url,在URL中可以指定的MVC中的Controller,Action,参数。

学习Routing 的定义。Routing在解析URL的时候,符号”/”和“.”被作为一个定义符来解析,而定义符之间的值则匹配到Routing中的占位符,Routing中是通过一对大括号来表示一个占位符,若无这对大括号将是常量值。例如:controller/{action}/{id}

一般情况我们都是在Global.asax文件中的Application_Start事件中添加Route规则,这样就可以在Web应用程序一执行就可以解析URL。

直接看代码吧。

var DemoDict = new RouteValueDictionary();
DemoDict["controller"] = "Home";//指定Controller默认值
DemoDict["action"] = "Index";//指定默认的Action
DemoDict["id"] = 0;

var ConstraintRouteDict = new RouteValueDictionary();
ConstraintRouteDict["controller"]=@"^\w+";//只允许是字母
ConstraintRouteDict["action"]=@"^\w+";//只允许是字母
ConstraintRouteDict["id"] = @"^\d+";//只允许是整数

var DemoRoute = new Route("{controller}/{action}/{id}", DemoDict, ConstraintRouteDict, new MvcRouteHandler());
//用MvcRouteHandler来处理捕捉到的URL,
//要将捕捉到的URL用来调用ASP.NET MVC应用程序就要用这个RouteHandler。
//如果URL Routing要用来处理其它的应用程序则就需要使用其它的RouteHandler或自定义RouteHandler

 

这种方式创建一个完整的规则,但是如果只用在MVC框架中就显得麻烦,代码还是多,在ASP.NET MVC框架中有一个RouteCollectionExtensions

类,类中有一个MapRoute()方法,可以很方便的创建Routing规则。

写法如下:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = "o" },
    new { controller="@",action=@"",id=@""}
);

另外要使用URL Routing 一定要在Web.config文件一定配置UrlRoutingModule,不然URL Routing将不可以使用,另外如果有多个Routing规则,程序是默认按照规则定义的前后顺序进行匹配规则的,如果需要知道传递过来的URL匹配到那些规则,可以使用RouteDebugger进行调试。

转载于:https://www.cnblogs.com/longgel/archive/2010/01/28/1658752.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值