mvc 是什么?
- model:模型,持有所有的数据、状态和程序逻辑。模型独立于视图和控制器。
- view:视图,用来呈现模型。视图通常直接从模型中取得它需要显示的状态与数据。对于相同的信息可以有多个不同的显示形式或视图。
- controller:位于视图和模型中间,负责接受用户的输入,将输入进行解析并反馈给模型,通常一个视图具有一个控制器。
MVC 模式实现了模型和视图的分离。MVC 模式的好处如下:
- 一个模型提供不同的多个视图表现形式,也能够为一个模型创建新的视图而无须重写模型。一旦模型的数据发生变化,模型将通知有关的视图,每个视图相应地刷新自己。
- 模型可复用。因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。
- 提高开发效率。在开发界面显示部分时,你仅仅需要考虑的是如何布局一个好的用户界面;开发模型时,你仅仅要考虑的是业务逻辑和数据维护,这样能使开发者专注于某一方面的开发,提高开发效率。
mvc 从哪里开始编码?
从论坛里看到有人这样建议:
- 从 view 开始写,因为只有知道用户想要的东西,才能写得出正确的 M 和 C。首先,你就要知道 view 应该展现什么,然后假设你已经得到要展现的结果集,去写怎么得到要展现的内容。
- 从dao(接口)写,你就要知道你应该给 view 传递什么结果集,然后得到结果集,传递到前台,再进行展示就可以了。
- 从 model 开始写,先建 model 类,然后建dao接口,dao接口实现类,然后业务接口,业务实现类,最后视图层。
【结论】:从哪里开始都可以,顺手就好。
个人喜欢:先写 model 再写 controllers 最后写 view。
mvc 框架执行顺序
1、把路由添加到路由表。
2、注册ControllerBuilder(老板)和默认工厂(DefaultControllerFactory)。
默认工厂获取可以创建的Controller。
3、由于配置文件中含有IHttpModule的配置,所以会在HttpApplication的指定事件发生时执行注册的委托。
- 路由数据根据HttpContext来获取RouteData。
- 根据RouteData和HttpContext封装成RequestContext。
- 使用HttpContextWrapper的RemapHandler方法来为请求指定处理程序。
- 在实现了IHandler类中ProcessRequest方法获得Context的Controller的名称,初始化Controller,然后执行ControllerBase的Execute方法,在初始化Controller时,初始化一个ModelBinder,用来实现Model的绑定。这样就进入了Controller中
4、进入Controller之后,执行Execute方法。
5、在Controller执行Execute方法,ActionInvoke方法执行指定的Action,执行Action时可以根据其参数和3.4得到的ModelBinder来实现Model的绑定。
6、执行Action的ExecuteResult方法,获得Result。
参考文档:
https://blog.csdn.net/weixin_30315435/article/details/95633081