理解ASP.NET MVC底层运行机制
来源:互联网 发布:org域名不能注册了? 编辑:程序博客网 时间:2024/05/17 01:12
ASP.NET MVC有三大组件(即模型、视图、控制器)。所谓模型,就是MVC需要提供的数据源,负责数据的访问和维护。所谓视图,就是用于显示模型中数据的用户界面。所谓控制器,就是用来处理用户的输入,负责改变模型的状态并选择适当的视图来显示模型的数据。以下是我绘制的MVC三大组件之间的交互图。
从交互图中可以看出,MVC从用户发送请求到页面呈现结果大致经过了五个步骤,分别为:
(1). 用户在浏览器输入地址,向页面发送请求(实则是向控制器发出相关命令);
(2). 控制器接受命令后,向模型请求获得相关的数据;
(3). 模型将相应的数据返回给控制器;
(4). 控制器将相关数据发送到指定的视图;
(5). 指定的视图呈现相关的数据。
从界面中可以看出,Mcirosoft已经约定了一套规范的目录结构,主要功能如下:
Content:寻访CSS、图片等静态资源文件;
Controllers:存放一系列以***Controllers命名的控制器组件,执行与模型和视图的交互(一般业务会提取到业务逻辑层中);
Models:存放Linq To SQL或ADO.NET Data Entity Model等模型组件,也可存放有关的数据操作等(一般提取到数据访问层中),或者是视图层中需要使用的Model模型;
Scripts:存放系统需要的JavaScript文件;
Views:存放与Controllers在与方法对应的视图,注意:如果存在***Controllers控制器,在Views中就必然会映射一个***命名的文件夹。在Views之下的Shared则存放视图组件的公共部分,如.master、样式表等。
此外,Global.asax实现MVC的URL的路由控制,可以在其中的RegisterRoutes()中设置默认的路由,以下是Global.asax的具体路由代码。
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
//自定义View
ViewEngines.Engines.Clear();
ExtendedRazorViewEngine engine = new ExtendedRazorViewEngine();
engine.AddPartialViewLocationFormat("~/Areas/Common/Views/Shared/{0}.cshtml");
ViewEngines.Engines.Add(engine);
//设置MEF依赖注入容器
MefConfig.RegisterMef();
//Model去除前后空格
ModelBinders.Binders.DefaultBinder = new TrimModelBinder();
}
}
当MVC在.net framework3.5中运行时,还需要在web.config中的httpModules配置节中注册UrlRoutingModule类,用于解析URL路由,这正是MVC与传统的ASP.NET应用程序的根本区别。
<httpModules>
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
</httpModules>
原文:http://www.cnblogs.com/hmiinyu/archive/2012/05/25/2517730.html
- 理解ASP.NET MVC底层运行机制
- ASP.NET MVC架构与实战系列之一:理解MVC底层运行机制
- Asp.net mvc 深读mvc运行机制
- 深入理解ASP.NET的内部运行机制
- 深入理解ASP.NET的内部运行机制
- ASP.NET MVC学习笔记-MVC运行机制之源码剖析
- ASP.NET MVC底层原理与框架
- ASP.NET MVC的运行机制--url的全局分析
- ASP.NET MVC的运行机制--url的全局分析
- 深入理解ASP.NET MVC
- ASP.NET MVC 理解MVC模式
- ASP.NET运行机制
- asp.net运行机制
- ASP.NET运行机制
- asp.net页面运行机制
- ASP.NET运行机制
- ASP.NET运行机制
- ASP.NET页面运行机制
- Objective-C中的instancetype和id区别
- 更新VS2017后,各种报错
- Maven学习总结(19)——Maven+Nexus+Myeclipse集成
- 多台web服务器之间共享session
- Failed to read artifact descriptor for xxx:jar的问题解决
- 理解ASP.NET MVC底层运行机制
- ubuntu 安装pycharm
- android用MediaCodeC将opengl绘制内容录制为一个mp4
- 关于百度特效“黑洞”的css3,自己记录一下
- QColor类的使用
- linux defunct僵尸进程
- Arduino-开发入门2-Arduino蓝牙模块与Android实现通信
- 概率论与自然语言处理1
- 便携式跌倒检测研究