ASP.NET MVC框架学习

架构师是要从各种技术中找到最合适的技术用来解决需求问题。一般都是通过阅读源码来深入理解各种技术的底层原理。

ps:好多人都说阅读源码太难了,一般做项目都没必要太过于深入。其实阅读源码不仅可以学习到框架优秀的设计,还能搞懂框架原理进而更合理适、更高效去使用框架。

参考:

System.Configuration 命名空间 :包含提供用于处理配置数据的编程模型的类型

  • Configuration 类 :表示适用于特定计算机、应用程序或资源的配置文件。 此类不能被继承

ASP.NET MVC工作原理:

启动入口

Global.asax ==》Startup.cs

Global.asax 下面是一个MvcApplication类集成,该类继承System.Web.HttpApplication,类下面是一个Application_Start方法

简单的流程

用户请求是通过【视图V】进入==》通过【控制器C】处理==》从【模型M】获取数据==》最后返回给【视图V】。

也知道ASP.NET MVC中的约定可以通过修改配置来修改。

疑问

当时有一个疑问困惑好久,就是数据是怎么通过控制器C中发送到视图V的?

虽然知道能根据控制器内的方法来识别对应的视图名称,但是控制器方法的return是怎么把模型数据发送到视图的@model,当时记得自己折腾好久都没整明白,百度搜索找到很少相关,最后看到《ASP.NET MVC 5框架揭秘》这本书才知道是和视图引擎ViewEngine有关,视图引擎会把控制器绑定的数据和视图关联起来

修改约定

只搜索cshtml

在Global.asax中增加

/配置视图搜索位置、文件类型,以提高性能

ViewEngines.Engines.Clear();

ViewEngines.Engines.Add(new CustomLocationViewEngine());

然后把CustomLocationViewEngine.cs文件放到App_Start

配置类/注册类:

 Global.asax 下面类的方法内的注册信息是怎么别框架识别的?

猜你喜欢

转载自www.cnblogs.com/qingyunye/p/12900321.html