简述ASP.NET MVC原理

1.为什么ASP.NET需要MVC?

  因为随着网站的的数量级越来越大,原始的网站方式,这里指的是WebForm,在运行速度和维护性方面,以及代码量上面,越来越难以满足日益庞大的网站维护成本。代码的重构方面也会受到限制,传统的方式每次进入一个动态页面都要进行一次渲染,走完一次页面的“生命周期”。我们越来越发现,如果代码量过多的话,有时候为了走完一次“生命周期”的话,会花费更多的时间去等待。如果我们 有这么一种思想:“所有的代码逻辑在页面载入的时候都处理完成“,我们显示的东西只是处理返回后的结果,让页面彻底的脱离代码逻辑就好了,那样我们每次载入的时候,程序就没必要考虑那么多的逻辑代码,因为它只要改变业务模型层里的数据就行了,那样无论数据量多么的庞大,我们只要在业务逻辑层里面处理完了就OK了,我们显示出来的,只是模型层里不断变化的数据,这样就节约了页面的数量级,总之一句话:MVC的诞生是为了适应网站不断增长的数量级而应运而生的一种设计模式。

2.什么是MVC?

  什么是MVC呢?M-Model 模型层,V:视图层,C-控制层。下面简述这3者的关系,由于ASP.NET引入了路由机制,我们是通过路由产生动态页面,我们首先由路由表里面的{controller}找到控制器里对应的控制层,路由的第二个参数是{Action},第三个是可选参数,可以是形式参数,比如id=2首先来说一下模型层,模型层是直接和数据互通的,数据库里的数据可以填充到模型层里面。控制层:控制层是写逻辑代码的地方,其实控制层和模型层并没有特别区分的地方,因为模型层是控制层里逻辑代码的一部分,我们通过一些方式可以让模型层里面填充数据,然后在控制层里面进行一系列的计算操作,然后控制层再把计算到的结果返回给视图层。视图层:把控制层返回到的模型结果,填充到视图里面去,通过一系列的RAZOR语法,进行解析生成静态的HTML页面,说白了,就是一个简单的呈现结果。

其中要注意,一个ActionResult只能对应一个视图页面。

3.MVC的工作原理

  首先通过路由确定控制层和所对应的Action以及Action对应的视图,通过控制层里面的逻辑代码,让模型层里填充数据,再确定视图层所呈现的模型,把ActionResult返回给视图层。然后填充了数据的视图层就会以最终的结果呈现给我们。 一次MVC的生命周期就走完了。

原文地址:https://www.cnblogs.com/kmsfan/p/4512351.html