[杂] ASP.NET MVC 之 Route To MvcHandler

时间:2022-11-09 20:32:06

首先,本文参考了不少东东,仅供Q_L_H自己使用,ZZ自己负责。先上一张全家福:

[杂] ASP.NET MVC 之 Route To MvcHandler

HttpModules and HttpHandlers

ASP.NET MVC 是 HttpHandler.

[杂] ASP.NET MVC 之 Route To MvcHandler

UrlRoutingModule 是 HttpModule, 在web.config里面注册。

[杂] ASP.NET MVC 之 Route To MvcHandler

UrlRoutingModule → MvcRouteHandler

[杂] ASP.NET MVC 之 Route To MvcHandler

[杂] ASP.NET MVC 之 Route To MvcHandler

[杂] ASP.NET MVC 之 Route To MvcHandler

MvcRouteHandler → MvcHandler

IHttpHandler IRouteHandler.GetHttpHandler(RequestContext requestContext)
   {
     return this.GetHttpHandler(requestContext);
   }

protected virtual IHttpHandler GetHttpHandler(RequestContext requestContext)
    {
      requestContext.HttpContext.SetSessionStateBehavior(this.GetSessionStateBehavior(requestContext));
      return (IHttpHandler) new MvcHandler(requestContext);
    }

MvcHandler → IController

private void ProcessRequestInit(HttpContextBase httpContext, out IController controller, out IControllerFactory factory)
    {
      HttpContext current = HttpContext.Current;
      if (current != null)
      {
        bool? nullable = ValidationUtility.IsValidationEnabled(current);
        if ((!nullable.GetValueOrDefault() ? 0 : (nullable.HasValue ? 1 : 0)) != 0)
          ValidationUtility.EnableDynamicValidation(current);
      }
      this.AddVersionHeader(httpContext);
      this.RemoveOptionalRoutingParameters();
      string requiredString = this.RequestContext.RouteData.GetRequiredString("controller");
      factory = this.ControllerBuilder.GetControllerFactory();
      controller = factory.CreateController(this.RequestContext, requiredString);
      if (controller != null)
        return;
      throw new InvalidOperationException(string.Format((IFormatProvider) CultureInfo.CurrentCulture, MvcResources.ControllerBuilder_FactoryReturnedNull, new object[2]
      {
        (object) factory.GetType(),
        (object) requiredString
      }));
    }

参考文章:

http://www.codeproject.com/Articles/595520/MvcRouteHandler-and-MvcHandler-in-ASP-NET-MVC-Fram

http://beletsky.net/2011/06/inside-aspnet-mvc-route-to-mvchanlder.html

http://msdn.microsoft.com/en-us/magazine/dd695917.aspx

[杂] ASP.NET MVC 之 Route To MvcHandler的更多相关文章

  1. Asp.net MVC中Route的理解

    在Asp.net MVC中,对于一个请求,是通过路由找到对应的Controller类中的对应Action,并与model进行交互,最后返回到view. 就是说Asp.net MVC是用Route来定义 ...

  2. 【转】ASP.NET MVC教程

    转自:http://www.cnblogs.com/QLeelulu/category/123326.html ASP.NET MVC的最佳实践与性能优化的文章 摘要: 就一些文章链接,就不多废话了. ...

  3. Asp.net Mvc 请求是如何到达 MvcHandler的——UrlRoutingModule、MvcRouteHandler分析,并造个*

    这个是转载自:http://www.cnblogs.com/keyindex/archive/2012/08/11/2634005.html(那个比较容易忘记,希望博主不要生气的) 前言 本文假定读者 ...

  4. asp.net MVC 路由机制 Route

    1:ASP.NET的路由机制主要有两种用途: -->1:匹配请求的Url,将这些请求映射到控制器 -->2:选择一个匹配的路由,构造出一个Url 2:ASP.NET路由机制与URL重写的区 ...

  5. 【ASP.NET MVC 牛刀小试】 URL Route

    例子引入 先看看如下例子,你能完全明白吗? using System; using System.Collections.Generic; using System.Linq; using Syste ...

  6. 在ASP.Net MVC 中,如何在Global.asax中配置一个指向Area内部的默认Route

    ASP.Net MVC 中配置Route的时候可以设置一个默认的Route. 比如我要在输入http://localhost的时候默认进入http://localhost/home/index.可以在 ...

  7. ASP.NET MVC:自定义 Route 生成小写 Url(转)

    先给出本文中测试用的 controller: public class PersonsController : Controller { public ActionResult Query(strin ...

  8. asp.net mvc Route 使用自定义条件(constraints)禁止某ip登陆

    asp.net mvc Route 使用自定义条件(constraints)禁止某ip登陆 前言 本文的目的是利用Mvc route创建一个自定义约束来控制路由跳转实现禁止ip登陆,当然例子可能不合理 ...

  9. ASP.NET MVC学习(一)之路由篇Route

    什么是路由 通过[路由]配置,路由可以规定URL的特殊格式,使其达到特殊效果. 在ASP.NET MVC框架中,通过路由配置URL,使用户的URL请求可以映射到Controller下的action方法 ...

随机推荐

  1. UWP&WP8.1 重新绘制图片 WriteableBitmap用法 图片转byte[]数组,byte[]数组转图片

    ---恢复内容开始--- WriteableBitmap 是UWP和WP8.1绘制图片的,重组图片的最重要方法.方法较为简单,方法多样性. 通过查看文档,WriteableBitmap的继承性是    ...

  2. P6 EPPM手动安装指南(Oracle数据库)(一)

    P6 EPPM手动安装指南(Oracle数据库) P6 EPPM Manual Installation Guide (Oracle Database) 1.      内容... 1 1.1.    ...

  3. Wi-Fi定位,AP定位

    Wi-Fi实时定位系统 基于Wi-Fi的无线局域网实时定位系统(Wi-Fi RTLS)结合无线局域网络(WLAN).射频识别(RFID)和实时定位等多种技术,广泛地应用在有无线局域网覆盖的区域,实现复 ...

  4. win10 uwp 按下等待按钮

    我们经常需要一个按钮,在按下时,后台执行Task,这时不能再次按下按钮. 我们使用自定义控件,首先新建一个类,我把它命名是ProgressButton 一个进度条按钮,也就是我们按下时发生进度条,完成 ...

  5. 【Java】0X003 面向对象

    一. 什么是面向对象 都说Java是一门面向对象的语言,但什么对象?什么又是面向对象?以下都是我学到的知识和一点自己的理解. 对象是指包含属性和行为的主体. 比如,人有性别.血型.单眼皮或双眼皮等的特 ...

  6. addq

    <template> <el-row id="AddRoom"> <el-col :xs="0" :sm="2&quot ...

  7. combobox组合框

    最近在改BUG的时候发现,combobox组合框如果选择的是Dropdown模式在初始化combobox对象时候有如下操作 1.SetDlgItemInt(IDC_WB_FONTSIZECOMBOX, ...

  8. 进阶篇:5&period;1)极值法&lpar;Worst Case &comma;WC&rpar;

    本章目的:了解极值法,运用极值法: 1.极值法定义 极值法(WC,Worse Case):极值法是考虑零件尺寸最不利的情况,通过尺寸链中尺寸的最大值或最小值来计算关键尺寸的值: 计算公式: 2.极值法 ...

  9. web子项目的路径问题

    http://baidu.com/userms/ userms是一个子应用程序,项目中使用的路径 /content/css/..   从http://baidu.com/  开始 ~/content/ ...

  10. 下载win7&sol;win8&sol;win10镜像

    关于给电脑换系统,很多人会花钱去电脑店里换,或者是下载Ghost系统.但这些系统都不是微软原版的,制作者已经集成了很多常用软件或垃圾软件进去.我在这给大家介绍的是如何下载正版的Windows系统.这个 ...