1、 ASP.NET MVC 是什么?

ASP.NET MVC是微软官方提供的以MVC模式为基础的ASP.NET Web应用程序(Web Application)框架,它由Castle的MonoRail而来,日前最新版本是ASP.NET MVC 4.0。是将一个Web应用分解为:Model、View和Controller。ASP.NET MVC框架提供了一个可以代替ASP.NET WebForm的基于MVC设计模式的应用。

MVC的优点:

(1)、通过把项目分成Model、View和Controller,使得复杂项目更加容易维护,减少项目之间的耦合;

(2)、没有使用ViewState和服务器表单控件,可以更方便的控制应用程序的行为;

(3)、应用程序通过Controller来控制程序请求,并提供了原生的UrlRouting功能来重写Url;

(4)、使Web程序对单元测试的支持更加出色;

(5)、在团队开发模式下表现更出众。

2、MVC 包含的关键技术:

ActionResult:Action 的返回类型

Filter:过滤器

ModelBinder:Model绑定器

Url Routing:Url路由规则

3、MVC Web 项目的执行阶段:

阶段

详细信息

接收对应用程序的第一个请求

在 Global.asax 文件中,Route 对象将添加到 RouteTable 对象中。

执行路由

UrlRoutingModule 模块使用 RouteTable 集合中第一个匹配的 Route 对象来创建 RouteData 对象,然后使用所创建的对象创建 RequestContext 对象

创建 MVC 请求处理程序

MvcRouteHandler 对象将创建 MvcHandler 类的实例,并将 RequestContext 实例传递给处理程序

创建控制器

MvcHandler 对象使用 RequestContext 实例标识用于创建控制器实例的   IControllerFactory 对象(通常是 DefaultControllerFactory 类的实例)

执行控制器

MvcHandler 实例调用控制器的 Execute 方法

调用操作

对于从 ControllerBase 类继承的控制器,与该控制器关联的 ControllerActionInvoker 对象将决定要调用的   controller 类的操作方法,然后调用该方法

执行结果

操作方法将接收用户输入,准备合适的响应数 据,然后通过返回结果类型来执行结果。可执行的内置结果类型包括:ViewResult(呈现视图并且是最常用的结果类型)、 RedirectToRouteResult、RedirectResult、ContentResult、JsonResult、FileResult 和 EmptyResult

简单的描述一下:

步骤1:创建RouteTable

当ASP.NET应用程序第一次启动的时候才会发生第一步。RouteTable把URL映射到Handler。

步骤2:UrlRoutingModule拦截请求

第二步在我们发起请求的时候发生。UrlRoutingModule拦截了每一个请求并且创建和执行合适的Handler。

步骤3:执行MvcHandler

MvcHandler创建了控制器,并且把控制器传入ControllerContext,然后执行控制器。

步骤4:执行控制器

控制器检测要执行的控制器方法,构建参数列表并且执行方法。

步骤5:调用RenderView方法

大多数情况下,控制器方法调用RenderView()来把内容呈现回浏览器。Controller.RenderView()方法把这个工作委托给某个ViewEngine来做。

ASP.NET MVC 简介的更多相关文章

  1. ASP.NET MVC教程一:ASP.NET MVC简介

    一.MVC模式简介 MVC模式是一种流行的Web应用架构技术,它被命名为模型-视图-控制器(Model-View-Controller).在分离应用程序内部的关注点方面,MVC是一种强大而简洁的方式, ...

  2. 第1章 (ASP.NET MVC简介)

    一.MVC概念 MVC由三部分组成:视图(View).模型(Model).控制器(Controller)组成 二.运用VS创建MVC 1.新建一个"解决方案" 2.在"解 ...

  3. ASP.NET MVC简介

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...

  4. 1.1 ASP.NET MVC简介

    1.什么是ASP.NET MVC? (1)它是个怎么样的产品? ASP.NET MVC是微软公司.NET平台上的一个Web开发框架,它为开发者提供了一种构建结构良好的Web应用程序的方式.自2007年 ...

  5. ASP.NET MVC 简介(附VS2019和VSCode版示例)

    MVC可以理解为一种思想,应用在web应用程序的架构上. ASP.NET MVC的核心类是实现了IHttpHandler接口的MVCHandler,它的底层仍然是HttpHandler.HttpReq ...

  6. ASP.NET MVC 5 01 - ASP.NET概述

    本篇目录: ASP.NET 概述 .NET Framework 与 ASP.NET ASP.NET MVC简介 ASP.NET的特色和优势 典型案例 ▁▃▅ ASP.NET概述 ▅▃▁ 目前开发B/S ...

  7. 北大青鸟进入ASP.NET MVC的世界(一)

    今天我们开始ASP.NET  MVC 4.0课程的学习第一讲.我们今天主要关注如下5个问题: 1.理解ASP.NET MVC程序的执行过程 2.会使用ASP.NET中的系统对象 3.会搭建ASP.NE ...

  8. 推荐几本不错的ASP.NET MVC书

    以前主要是做PHP应用的,由于工作需要,捡起来.NET, 特别是新技术层出不穷,找了几本书看,个人感觉还不错,网上也有电子版的下载 一. ASP.NET MVC4 Web 编程 O'Reilly出版社 ...

  9. ASP.NET MVC 4高级编程(第4版)

    <ASP.NET MVC 4高级编程(第4版)> 基本信息 作者: (美)Jon Galloway    Phil Haack    Brad Wilson    K. Scott All ...

随机推荐

  1. php安装的一点点事 ---wampserver

    安装wampserver后,需要配置一些文件 1. 首先修改httpd.conf <Directory /> Options FollowSymLinks AllowOverride No ...

  2. SVN:服务器资源删掉,本地添加时和删掉的名字同名出现One or more files are in a conflicted state.

    异常处理汇总-开发工具  http://www.cnblogs.com/dunitian/p/4522988.html

  3. UML基础系列:类图

    类图描述系统中类的静态结构,它不仅定义系统中的类,描述类之间的联系,如关联.依赖.聚合等,还包括类的内部结构(类的属性和操作).类图描述的是静态关系,在系统的整个生命周期中都是有效的.对象图是类图的实 ...

  4. jQuery源码分析系列(40): 动画设计

    前言 jQuery动画是通过animate这个API设置执行的,其内部也是按照每一个animate的划分封装了各自动画组的行为, 包括数据过滤.缓动公式.一些动画默认参数的设置.元素状态的调整.事件的 ...

  5. 前端学PHP之错误处理

    × 目录 [1]错误报告 [2]错误级别 [3]错误处理[4]自定义错误[5]错误日志[6]异常处理[7]自定义异常 前面的话 错误处理对于程序开发至关重要,不能提前预测到可能发生的错误,不能提前采取 ...

  6. javascript中15种原生对象类型系统综述

    前面的话 在编程语言中,能够表示并操作的值的类型称做数据类型,编程语言最基本的特性就是能够支持多种数据类型.javascript拥有强大的类型系统,主要包括原生对象.宿主对象和浏览器拓展对象,本文主要 ...

  7. Linux安装Node.js

    安装环境:Ubuntu:x86_64 Node.js 官网:https://nodejs.org 下载Node.js: wget https://nodejs.org/dist/v4.4.3/node ...

  8. 【CSS进阶】原生JS getComputedStyle等方法解析

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

  9. hdu4833 Best Financing(DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4833 这道题目关键的思想是从后往前dp,dp[i]表示在第i处投资xi能获得的最大收益,其中xi表示从 ...

  10. vue-lazy-render: 延迟渲染大组件,增强页面切换流畅度

    最近用element来做项目,在开发的过程中,突然发现页面的操作和切换在数据量大的时候相当卡,后来提了个issue,在furybean解答后才知道,我每个单元格都加了tooltip,会生成大量的节点, ...