码迷,mamicode.com
首页 > Web开发 > 详细

MVC系列学习(十四)-路由规则及路由调试工具

时间:2015-05-23 12:42:01      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

1.本次学习的代码,比较简单,就是在路由配置文件中,添加一个路由信息;同时添加一个相应的控制器及视图

技术分享

控制器中代码如下

技术分享

即有两条路由匹配规则,一个Kim控制器,该控制器下有个Index的方法,和一个对应Index视图

2.开始配置RouteDebugger

2.1下载程序集

RouteDebugger-2.1.3.0下载地址

2.2添加引用,并配置RouteDebugger

在网站根目录下的web.config文件中,在<appSetting></appSetting>节点中,添加如下语句

技术分享

3.开始请求,并看结果

技术分享

4.看源码,分析原因

public class RouteDebuggerHttpModule : IHttpModule
{
    // Methods
    public void Dispose()
    {
    }

    public void Init(HttpApplication context)
    {
        context.EndRequest += new EventHandler(RouteDebuggerHttpModule.OnEndRequest);
        context.BeginRequest += new EventHandler(RouteDebuggerHttpModule.OnBeginRequest);
    }

    private static void OnBeginRequest(object sender, EventArgs e)
    {
        if (RouteTable.Routes.Last<RouteBase>() != DebugRoute.Singleton)
        {
            RouteTable.Routes.Add(DebugRoute.Singleton);
        }
    }

    private static void OnEndRequest(object sender, EventArgs e)
    {
        new DebugHttpHandler().ProcessRequest(HttpContext.Current);
    }
}

原来在RouteDebugger中,在init()方法中,在请求管道中添加了两个事件,即第一个管道处理事件BeginRequest和最后一个管道处理事件EndRequest,怪不得可以监视整个请求

5.扩展,路由规则的运用

技术分享

技术分享

技术分享

技术分享

6.路由约束

如果你按照上面的代码运行一遍,你一定会有困惑。因为有时候,你的本次请求,希望它最终匹配的路由规则A,结果它匹配了路由规则B,下面我们就来解决这个问题

技术分享

MVC系列学习(十四)-路由规则及路由调试工具

标签:

原文地址:http://www.cnblogs.com/2star/p/4523875.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!