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


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

    image

    控制器中代码如下

    image

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

    2.开始配置RouteDebugger

    2.1下载程序集

    RouteDebugger-2.1.3.0下载地址

    2.2添加引用,并配置RouteDebugger

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

    image

    3.开始请求,并看结果

    image

    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.扩展,路由规则的运用

    image

    image

    image

    image

    6.路由约束

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

    image

    更多精彩内容请看:http://www.cnblogs.com/2star
  • 相关阅读:
    Prim算法的3个版本
    [转]"undefined reference to" 问题解决方法
    C/C++ 读写 Excel
    Poj 3468
    关于PS中矩形工具的学习
    PS初学习
    java第二天学习。
    Java学习第一天
    二叉树的线索化
    struct files_struct
  • 原文地址:https://www.cnblogs.com/kimisme/p/4523875.html
Copyright © 2020-2023  润新知