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一样的处理流程

到此这篇关于asp.net MVC处理流程的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • ASP.NET MVC框架简介

    一.MVC模式 概述 1.MVC是一种流行的Web应用架构技术,他把Web应用划分成Model(模型).Controller(控制器)和View(视图)三部分. 2.优点:可测试.可维护 3.MVC是ASP.NET技术的子级(ASP.NET MVC),ASP.NET包括:ASP.NET WebForm和ASP.NET MVC. 二.MVC简介 1.MVC是什么 MVC是一种软件架构设计模式,针对具备人机交互功能的软件和程序. 2.执行顺序 控制器接收网页发送的请求,如果需要请求数据,先从Mode

  • 详解ASP.NET MVC的整个生命周期

    目录 一.介绍 二.MVC生命周期详述 View的初始化和渲染呈现 三.结束 一.介绍 我们做开发的,尤其是做微软技术栈的,有一个方向是跳不过去的,那就是MVC开发.我相信大家,做ASP.NET MVC 开发有的有很长时间,当然,也有刚进入这个行业的.无论如何,如果有人问你,你知道ASP.NET MVC的生命周期吗?你知道它的来世今生吗?你知道它和 ASP.NET WEBFORM 有什么区别吗?估计,这些问题,有很多人会答不上来,或者说不清楚.今天,我就把我的理解写出来,也是对我自己学习的一次回

  • ASP.NET MVC基础

    一.MVC与ASP.NET MVC基础概念 MVC是Model-View-Controller的缩写. MVC将应用程序划分为3大组件:模型\视图\控制器. MVC不是ASP.NET所特有,它只是一种开发理念.java中的struts2也是一种MVC模型. ASP.NET MVC从2008年发布1.0版以来,截至2014年ASP.NET MVC最新版本已经是5.0. ASP.NET MVC从1.0版开始,就已经开放源代码(源码地址:aspnetwebstack.codeplex.com). AS

  • ASP.NET MVC模式中应用程序结构详解

    目录 一.App_Data 二.App_Start 三.Content 四.Controllers 五.font 六.Models 七.Scripts 八.Views 九.Web.config 1.根目录下面的Web.config文件 2.Views文件夹下面的Web.config 十.Global.asax 在上一篇文章中,讲解了一些MVC的概念,并且创建了第一个ASP.NET MVC项目,这篇文章将讲解ASP.NET MVC程序中的代码解构,新创建的MVC应用程序解构如下图所示: 一.App

  • ASP.NET MVC模式简介

    目录 一.MVC模式简介 1.MVC在Web框架中的应用 2.执行顺序 二.ASP.NET中的MVC 1.ASP.NETMVC和ASP.NET 2.ASP.NETMVC和WebForms 三.创建ASP.NETMVC 1.选择文件->新建->项目 2.选择.NETFramework版本的ASP.NETMVC 3.配置项目名称和路径 3.1.选择一种应用程序模板 3.2.测试 3.3.配置身份验证 一.MVC模式简介 MVC模式是一种流行的Web应用架构技术,它被命名为模型-视图-控制器(Mod

  • 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获取浏览器发起的请求 将RoutDat

  • ASP.NET中Label控件用法详解

    Label 控件提供了一种在 ASP.NET 网页中以编程方式设置文本的方法.当希望在运行时更改网页中的文本(比如响应按钮单击)时,通常可以使用 Label 控件. 一.属性 Label控件的常用属性及说明如表1所示. 表1 Label控件常用属性及说明 属性 说明 ID 控件的ID名称 Text 控件显示的文本 Width 控件的宽度 Visible 控件是否可见 CssClass 控件呈现的样式 BackColor 控件的背景颜色 Enabled 控件是否可用 下面详细介绍Label控件的一

  • ASP.NET中Image控件使用详解

    Image控件又称图像控件,主要用来显示用户的图片或图像信息. 一.属性 表1 Image控件常用属性及说明 属性 说明 ID 控件ID ImageAlign 获取或设置Image控件相对于网页上其他元素的对齐方式 ImageUrl 获取或设置在Image控件中显示的图像的位置 Width 控件的宽度 Visible 控件是否可见 CssClass 控件呈现的样式 BackColor 控件的背景颜色 Enabled 控件是否可用 Image控件的大部分属性和Label控件类似,在此主要讲解一下其

  • Asp.Net中Cache操作类实例详解

    本文以一个Asp.Net的Cache操作类实例代码来详细描述了cache缓存的结构及实现方法,完整代码如下所示: /// <head> /// <function> /// 存储类(存储UserInfo信息) /// </function> /// <description> /// 用Cache存储用户信息 /// 在指定间隔(TimeOut)内取,则可以从Cache中取, /// 如果超出存储时间,则从数据库取用户信息数据 /// 作為所有用户信息的存儲

  • Asp.Net中MVC缓存详解

    本文通过介绍了Asp.Net中MVC缓存的种类,以及他们之间的区别等内容,让学习者能够深入的了解MVC缓存的原理机制,以下是具体内容: 缓存是一种保存资源副本并在下次请求时直接使用该副本的技术.当 web 缓存发现请求的资源已经被存储,它会拦截请求,返回该资源的拷贝. Web应用缓存技术大体上可以分为两类:服务端缓存和客户端缓存.两种目标都是减少重复性内容的生成和网络传输工作,因为缓存数据存储的位置不同,而分为服务端缓存和客户端缓存. 服务端缓存 服务端缓存技术关注于服务端数据查询,生成或者操作

  • MVC+DAO设计模式下的设计流程详解

    DAO设计 : DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置. 在该层主要完成对象-关系映射的建立,通过这个映射,再通过访问业务对象即可实现对数据库的访问,使得开发中不必再用SQL语句编写复杂的

  • asp.net中MVC借助Iframe实现无刷新上传文件实例

    本文实例讲述了asp.net中MVC借助Iframe实现无刷新上传文件的方法.分享给大家供大家参考.具体实现方法如下: html: 复制代码 代码如下: <div id="uploadwindow" style="display: none;">     <form action="/ShopActivitys/ImportActivityItems" id="form1" name="form1&

  • Asp.net 中mvc 实现超时弹窗后跳转功能

    为了实现保持登录状态,可以用cookie来解决这一问题 假设过期时间为30分钟,校验发生在服务器,借助过滤器,可以这样写 public class PowerFilter : AuthorizeAttribute { public override void OnAuthorization(AuthorizationContext filterContext) { var cookie = HttpContext.Current.Request.Cookies["loginInfo"]

  • ASP.NET中MVC从后台控制器传递数据到前台视图的方式

    本文实例讲述了ASP.NET中MVC从后台控制器传递数据到前台视图的方式.分享给大家供大家参考.具体分析如下: 数据存储模型Model: 复制代码 代码如下: public class CalendarEvent { public string id { get; set; } public DateTime start { get; set; } public DateTime end { get; set; } public string backgroundColor { get; set

  • ASP.NET中MVC传递数据的几种形式总结

    本文实例讲述了ASP.NET中MVC传递数据的几种形式.分享给大家供大家参考.具体如下: 在Asp.net mvc开发中,Controller需要向View提供Model,然后View将此Model渲染成HTML.这篇文章介绍三种由Controller向View传递数据的方式,实现一个DropDownList的显示. 第一种:ViewData ViewData是一个Dictionary.使用非常简单,看下面代码: public ActionResult ViewDataWay(int id) {

随机推荐