ASP.NET MVC路由系统的核心对象介绍

         众所周知,ASP.NET MVC有一套自己的路由系统。这套路由系统是在原来的ASP.NET 路由系统上扩展过来的。今天这篇文章就来聊聊MVC路由系统中非常关键的一些对象。

        ASP.NET MVC路由系统主要由以下几个核心对象:

        1.RouteCollection(RouteCollextionExtentions)

        2.RouteTable

        3.RouteData

        4.Route:RouteBase

        5.URLRouteMoudle

        下面我们就来一一介绍这些对象

        RouteCollection:这个是提供ASP.NET路由的路由集合,而MVC的路由类RouteCollectionExtentions中的方法是从RouteCollection扩展过来的扩展方法,它负责MVC的路由工作。下面是这个类的代码。

    public static class RouteCollectionExtensions
    {

        public static VirtualPathData GetVirtualPathForArea(this RouteCollection routes, RequestContext requestContext, RouteValueDictionary values);
        public static VirtualPathData GetVirtualPathForArea(this RouteCollection routes, RequestContext requestContext, string name, RouteValueDictionary values);
        public static void IgnoreRoute(this RouteCollection routes, string url);
        public static void IgnoreRoute(this RouteCollection routes, string url, object constraints);
        public static Route MapRoute(this RouteCollection routes, string name, string url);
        public static Route MapRoute(this RouteCollection routes, string name, string url, object defaults);
        public static Route MapRoute(this RouteCollection routes, string name, string url, string[] namespaces);
        public static Route MapRoute(this RouteCollection routes, string name, string url, object defaults, object constraints);
        public static Route MapRoute(this RouteCollection routes, string name, string url, object defaults, string[] namespaces);
        public static Route MapRoute(this RouteCollection routes, string name, string url, object defaults, object constraints, string[] namespaces);
    }

        从上面的定义可以看得出来, RouteCollectionExtentions类中的成员都是扩展成员。MapRoute方法是核心,该方法向路由表中注册路由。IgnoreRoute向路由表中注册忽略路由。

        RouteTable:路由表。顾名思义,这个类存储了我们注册的路由。而且这个对象在整个网站中只能有一个。接下来我们看一下这个类的代码(这是我用反编译工具编译出来的代码)。

public class RouteTable
{
    // Fields
    private static RouteCollection _instance;

    // Methods
    static RouteTable();
    [TargetedPatchingOptOut("Performance critical to inline t
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值