zoukankan      html  css  js  c++  java
  • asp.net MVC 的处理流程

    之前把笔记都放在空间日志中隐藏起来,今天看到这句话:作为经常从网上索取免费资料的一员,要有回报的思想,也为了让更多的人少走些弯路,想想自己不能这么自私,所以把空间日志搬到博客园来。闲话不说,直接开始。

     asp.net MVC 分为主要的Controller 、Action、以及Views

    下面来分析Asp.net MVC的处理流程:

    Controller 负责将获取Model数据并将Model传递个View对象,通知View对象显示。

    处理流程:

    1.用户发起请求---》UrlRouting获取请求—》MvcRouteHandler.GetHttpHandler()—>MvcHandler.ProcessRequest()

    2.UrlRouting获取浏览器发起的请求

    将RoutData与HttpContext合并成为RequestContext传递到IRoutHandler接口,IRoutHandler接口的实现类MvcRouteHandler接口到RequestContext参数,返回一个MvcHandler对象,并且为这个对象赋值RequestContext

    3.MvcHandler对象

    根据RequestContext参数解析出RouteData以及HttpContext,根据RouteData来查找出Controller以及对象的Action及其Parameters

    4.MvcHandler .ProcessRequest()方法的处理流程

    MvcHandler对象根据工厂方法获取到具体的Controller---->Controller.Execute()--->释放Controller对象

    这其中最主要的是MvcHandler对象根据传入的RequestContext参数来获取到具体的Controller,并执行其Execute()方法

    5.Controller.Execute()方法处理流程   查找Action

    获取Action--->调用ActionResult(Abstract方法)的ActionResult.ExecuteResult()方法

    6.ActionResult.ExecuteResult()方法

    获取到IView对象,--》根据Iview对象的页面路径获取到具体的Page,--->调用IView.RenderView()方法显示页面

    IView对象中存储的是页面的路径地址,最终通过页面引擎(View Engine)使用该路径生成具体的页面类,ViewPage(System.Web.Mvc.ViewPage)是实现了IView接口的对象。

    7,最终页面就可以正确的显示。

    ViewPage.RenderPartialView()   显示.ascx文件或者是ViewPage.RenderView() 显示.aspx文件。

    现在MVC  3中使用的是Razor视图引擎,和WebFormViewEngine一样的处理流程

  • 相关阅读:
    node错误: primordials is not defined
    单片机TTL转RS232模块DB9数据线接口排针接口多接口方便连接
    单片机串口自适应电平5V TTL电平兼容转换3.3V电平串口转换NMOS管
    USB串口转RS485转换器工业级usb串口转RS485模块转换器串口通讯
    Kafka丢数据、重复消费、顺序消费的问题
    纪念第一次做的拉花拿铁
    《奢侈的理由》总结
    【算法框架套路】回溯算法(暴力穷举的艺术)
    svg中矩形旋转问题
    性能测试工具集锦
  • 原文地址:https://www.cnblogs.com/5ishare/p/4515850.html
Copyright © 2011-2022 走看看