.Net MVC Framework[笔记].docVIP

  • 10
  • 0
  • 约1.73万字
  • 约 14页
  • 2017-03-20 发布于河南
  • 举报
.Net MVC Framework[笔记]

ASP.NET MVC Framework是微软在ASP.NET中添加的一组类别库,类库使用Model-View-Controller的设计模式来开发ASP.NET应用程序。 MVC简介 Model:包含数据、验证规则、数据访问和业务逻辑等应用程序信息。 View:封装了应用程序的表现层,是呈现给使用者看的信息。 Controller:包括控制流逻辑,控制信息流和应用程序的执行;接受来自用户的指令和数据,并将Model与View做整合的控制器,当服务器接到对ASP.NETMVC应用程序的要求时,服务器会先使用UrlRoutingModule ASP.NET Routing的HTTP模块 ,由它来解析是否有包含ASP.NET MVC应用程序的URL,有则产生一个MvcRouteHandler对象,这个对象会加载执行的必要信息,并且会呼叫包含在URL中的Controller的 Execute方法来执行工作。 web服务器通常将URL请求直接映射到服务器上的磁盘文件,如某URL请求“/index.asp”将映射到服务器根目录上的文件“index.asp” 而MVC框架的映射方式有所不同。MVC将URL映射到方法。这些方法在类中被称为 “控制器”,控制器负责处理进入的请求、处理输入、保存数据。并把相应发送回客户端。 MVC项目内每个View文件夹下的子文件夹对应一个控制器 MVC页面请求流程 当一个ASP.NET MVC应用程序提出请求,为了响应请求,包含一些请求执行流程步骤! 在ASP.NET MVC应用程序Http request和Http response 过程中,主要包含8个步骤: RouteTable 路由表 的创建; UrlRoutingModule 请求拦截; Routing engine 确定route; route handler 创建相关的IHttpHandler实例; IHttpHandler实例确定Controller 控制器); Controller执行; 一个视图引擎创建; 视图呈现。 主要流程图如下: a)RouteTable的创建 RouteTable的创建发生在mvc应用程序的启动 或者web应用程序池的重启!通常程序中,一个页面请求对应磁盘上的一个页面!如http://localhost/index.aspx对应到服务器磁盘上的文件index.aspx,index.aspx实际上是一个类,由IHttpHandler创建实例化。 IHttpHandler包含一个ProcessRequest方法,负责响应页面输出!但是MVC应用程序是不同的,每一个请求映射到route,route 定义在route table,在应用程序启动时创建!RouteTable在应用程序的具体使用如下 public class MvcApplication :System.Web.HttpApplication public static void RegisterRoutes RouteCollection routes routes.IgnoreRoute resource .axd/ *pathInfo ; routes.MapRoute Default, // Route name controller / action / id , // URL with parameters new controller Home, action Index, id // Parameter defaults ; protected void Application_Start RegisterRoutes RouteTable.Routes ; b)UrlRoutingModule 请求拦截 每一个Http请求都被UrlRoutingModule拦截,UrlRoutingModule提供了当前的HttpContext的routingengine 路由引擎)。HttpContext实例包含当前请求的所有数据。UrlRoutingModule控制着routing engine,提供了HttpContext数据到routing engine! UrlRoutingModule实现了IHttpModule接口,在web.config 文件进行了注册! UrlRoutingModule 具体的数据结构如下: public class UrlRoutingModule : IHttpModule // 主要的 Methods protected virtual void Init HttpApplication application ; private void OnApplicationPostMapR

文档评论(0)

1亿VIP精品文档

相关文档