游乐游手机版
首页/AI热点日报/热点详情

ASP.NET MVC5教程:创建MVC文件架构步骤详解

类型:热点整理2026-07-11
教程讲解使用VisualStudio创建ASP NETMVC项目并解析其目录结构,涵盖Controllers、Views、Models等核心文件夹,以及Global asax、Web config等配置文件的作用,重点强调路由、过滤器和打包器的配置逻辑。

本教程将带你从零开始创建MVC项目,并详细解析MVC的目录结构及各核心文件的作用。无论你是初学者还是有一定经验的开发者,都能从中获得清晰的知识梳理。

创建MVC项目

首先,我们使用Visual Studio 2019创建一个MVC架构的应用程序(Visual Studio 2019下载及安装,可点击下方“阅读原文”到我的博客中查找相关文章)。步骤如下:

  1. 打开VS2019,在启动页选择【创建新项目】

  2. 然后选择创建ASP.NET Web 应用程序

  3. 填写项目名称,点击创建。

  4. 选择MVC,去掉高级选项中的【为HTTPS配置】,然后点击创建。

小提示:如果你使用的是Visual Studio 2022或更高版本,步骤类似,但界面布局可能略有不同。务必确保选择“MVC”模板,并取消勾选HTTPS配置以避免本地开发时的证书问题。

这时我们的MVC结构的项目就创建完成了,目录结构如下:

至此,我们第一个MVC项目就创建完成了,后续的网站开发都是基于这个架构完成的。下面我讲下关于MVC的目录结构。

MVC目录结构

MVC的目录结构大体如下:

  1. Views(视图)

    存放与应用程序有关的 HTML 文件。

  2. Controllers(控制器)

    存放负责处理用户输入及响应的控制器类。

  3. Models(模块)

    存放用来显示到HTML中的程序模型类。

  4. App_Start(入口处理程序)

    包含应用程序的配置逻辑文件。

  5. App_Data(应用程序存储文件)

    用来存储应用程序数据。通常以文件形式包含数据存储。

  6. Content(存放静态文件)

    页面显示用到的静态文件,例如样式表css文件,图标,图片等内容。

  7. Scripts(存放Ja vaScript文件)

    存放js文件。

  8. fonts(存放字体文件)

    存放字体文件。

  9. Global.asax(全局程序设置)

    主要是web应用程序的全局设置文件。

  10. packages.config(管理NuGet包)

    用于跟踪管理已安装的软件包及其各自的版本。

  11. Web.config(网站配置)

    存放一些应用程序用到的配置信息。

小提示:App_Data文件夹通常用于存放本地数据库文件(如SQL Server Express的.mdf文件),开发阶段可以方便地模拟数据存储。而fonts文件夹并非所有项目都自动生成,如果你在创建时没有看到,可以手动添加。

常见问题

  • Q:MVC目录结构中的App_Data和App_Start有什么区别?
    A:App_Data用于存储数据文件(如数据库文件、XML文件),而App_Start用于存储应用程序启动时的配置逻辑(如路由、过滤器、打包器)。两者功能不同,不要混淆。
  • Q:为什么我创建的MVC项目没有fonts文件夹?
    A:fonts文件夹是可选存在的,通常在使用Bootstrap等框架时会自动生成。如果你的项目中没有,可以手动创建,或者忽略它,不影响核心功能。

MVC架构下的文件都有哪些作用?

Global.asax(全局配置文件)

global.asax这个文件包含的是全局应用程序事件的事件处理程序。

简单来说,我们可以在这个文件中添加一些整个应用程序运行过程中都可调用的代码。比如,我们添加一个当应用程序遇到异常时就进入到此文件来处理的代码,那么当应用程序在运行过程中遇到了异常,则会调用这段代码,那么我们就可以控制当程序报错了,给用户一个反馈界面,让用户体验更好一些。

再比如,我们可以添加一个当应用程序启动时,适用于全局范围的初始化代码,例如路由规则,筛选规则,文件捆绑规则等,那么这些规则在接下来所有的应用程序中都适用。我们创建的MVC项目默认给我们添加了这三个规则。如图:

可以看到,MvcApplication类继承自HttpApplication,HttpApplication是定义对 ASP.NET 应用程序内所有应用程序对象公用的方法、属性和事件。所以global中能处理的事件不止我刚才提到的两种,更多详细内容可点击“阅读原文”到我的博客中查找相关的文章。

如图所示,Application_Start函数是应用程序入口,也就是说,当应用程序启动时,会先调用这个方法。

再看方法内部,它给所有后续的程序注册了路由,筛选,打包器三个规则,但这三个规则没有直接写在函数中,而是调用了App_Start文件下的配置类来管理。接下来我们就来看App_Start这个文件夹的作用。

App_Start文件夹

App_Start文件夹在MVC架构中是存放应用程序启动时全局配置的逻辑文件。当我们创建MVC项目后,会自动生成以下三个文件:

  1. BundleConfig(打包器)

    作用:将静态文件(例如css,js文件)打包,便于调用。

  2. FilterConfig(过滤器)

    作用:可以判断用户登录和权限,动态Action管理,防篡改等。

  3. RouteConfig(路由器)

    作用:将浏览器的URL请求映射到特定的MVC控制器动作。也就是将网站的URL不再以.html或.aspx结尾,而是设定为统一的模式来显示。

小提示:路由配置是MVC的核心之一,默认的路由规则是 {controller}/{action}/{id},这意味着URL中的第一段是控制器名,第二段是动作方法名,第三段是可选参数。你可以通过修改RouteConfig.cs来定制URL模式。

Controller

MVC的核心就是Controller(控制器),它负责处理浏览器传送过来的所有请求,并决定要将什么内容响应给浏览器。Controller文件夹下储存的就是各种控制器文件。

控制器本身只是一个类,该类有许多方法。在这些方法中,只要是公开方法,该方法就会被视为是一种动作(Action)。只要有动作存在,就可以通过该动作方法接收网页请求并决定响应视图。

同时,按照MVC的约定,控制器文件需符合以下规则:

  1. Controller必须为公开类;
  2. Controller名称必须以Controller结尾;
  3. 必须继承自MVC内建的Controller类;
  4. 所有Action动作方法必须为公开方法。

关于Controller的使用方法我会在后续文章中详细说明。

Models

Models文件夹下,储存的是最终显示到View页面中的视图模型。Model主要负责维持数据状态,通过它将数据从数据库中检索出来传递给Controller处理,客户端传过来的数据也是通过Model传回数据存储系统中。

可以说,Model(视图模型)是View(视图)连接数据库的一个桥梁,它将呈现在用户面前的内容转换为可存储在数据库中的内容,也是非常重要的。

Views

View主要用于呈现数据。由于Controller和相关的Service处理完业务逻辑并将结果打包成了Model实体,所以View只需要负责将Model实体转换为视图呈现出来。更详细的内容我会在后续文章中加以说明。

Web.config

Web.config是一个配置文件,是基于XML的文本文件。

在发布Web应用程序时,Web.config文件并不编译进dll文件中,它主要存储一些ASP.NET应用程序的配置信息,比如上传文件的保存路径可配置在appSettings节点;数据库连接字符可保存在connectionStrings节点;用于定义自定义错误信息的customErrors节点等等…

常见问题

  • Q:为什么Controller的名称必须以“Controller”结尾?
    A:这是MVC框架的约定。当浏览器请求一个URL时,框架会按照命名规则查找对应的控制器类,例如请求“Home”会查找“HomeController”。如果不遵循此约定,框架将无法找到控制器。
  • Q:Web.config中的connectionStrings节点如何配置数据库连接?
    A:示例:。注意修改数据库名称和连接方式。
  • Q:App_Start中的三个文件可以删除吗?
    A:不建议删除,因为它们是MVC默认配置的核心。如果删除,需要手动在Global.asax中注册对应的功能,否则可能导致路由、打包或过滤功能失效。

通过本教程,你已经掌握了MVC项目的创建、目录结构及主要文件的作用。接下来可以继续深入学习MVC的实际开发应用,例如控制器与视图的交互、模型绑定等进阶内容。

来源:https://m.elecfans.com/article/2045517.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。