3.4 MVC

3.4.1 理解MVC模式

MVC是模型(Model)、视图(View)、控制器(Controller)的缩写,它是Web应用程序中一种常用的架构模式。这种模式将应用程序大体上分为3层,即Model层、View层和Controller层。它最主要的优点是实现了关注点分离(Separation of Concerns),将原本耦合在一起的3部分分离为独立的部分,这对开发、调试及测试应用程序都有极大的好处,如图3-5所示。

图3-5 MVC模式

在MVC的3部分中,Controller的作用非常重要,它介于Model与View之间,起到了入口点的作用。当应用程序收到HTTP请求时,ASP.NET Core MVC会将请求路由到相应的Controller,Controller将操作Model并完成对数据的修改。不仅如此,Controller还会将获取到的数据传给对应的View,并最终展示给用户。对于ASP.NET Core MVC视图应用,View会使用Razor和TagHelper等组件向用户最终呈现一个HTML页面,而对于Web API应用程序,则会返回一个资源,通常是JSON格式。

ASP.NET Core MVC是构建在ASP.NET Core之上的MVC框架。若要在应用程序中使用MVC,则需要添加MVC中间件:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseMvc();
}

在ASP.NET Core MVC框架中,除了Controller、Model和Action外,它还包括路由、模型绑定、模型验证和过滤器等功能。