在讲解关于mvc文件架构之前,我们先来创建一个mvc的项目。创建mvc项目首先,我们使用visual studio2019创建一个mvc架构的应用程序(visual studio2019下载及安装,可点击下方 阅读原文 到我的博客中查找相关文章)。步骤如下:
首先打开vs2019,在启动页选择【创建新项目】。
然后选择创建 asp.net web 应用程序。
填写项目名称,点击创建。
选择mvc,去掉高级选项中的【为https配置】,然后点击创建。
这时我们的mvc结构的项目就创建完成了,目录结构如下:
至此,我们第一个mvc项目就创建完成了,后续的网站开发都是基于这个架构完成的。下面我讲下关于mvc的目录结构。
mvc目录结构mvc的目录结构大体如下:
views(视图)
存放与应用程序有关的 html 文件。
controllers(控制器)
存放负责处理用户输入及响应的控制器类。
models(模块)
存放用来显示到html中的程序模型类。
app_start(入口处理程序)
包含应用程序的配置逻辑文件。
app_data(应用程序存储文件)
用来存储应用程序数据。通常以文件形式包含数据存储。
content(存放静态文件)
页面显示用到的静态文件,例如样式表css文件,图标,图片等内容。
scripts(存放javascript文件)
存放js文件。
fonts(存放字体文件)
存放字体文件。
global.asax(全局程序设置)
主要是web应用程序的全局设置文件。
packages.config(管理nuget包)
用于跟踪管理已安装的软件包及其各自的版本。
11. web.config(网站配置)
存放一些应用程序用到的配置信息。
mvc的目录结构基本上就是这些了。这里每个文件在应用程序中都有其作用,下面我讲下每个文件的用处是什么。
mvc架构下的文件都有哪些作用?global.asax(全局配置文件)global.asax这个文件包含的是全局应用程序事件的事件处理程序。
简单来说,我们可以在这个文件中添加一些整个应用程序运行过程中都可调用的代码。比如,我们添加一个当应用程序遇到异常时就进入到此文件来处理的代码,那么当应用程序在运行过程中遇到了异常,则会调用这段代码,那么我们就可以控制当程序报错了,给用户一个反馈界面,让用户体验更好一些。
再比如,我们可以添加一个当应用程序启动时,适用于全局范围的初始化代码,例如路由规则,筛选规则,文件捆绑规则等,那么这些规则在接下来所有的应用程序中都适用。我们创建的mvc项目默认给我们添加了这三个规则。如图:
可以看到,mvcapplication类继承自httpapplication,httpapplication是定义对 asp.net 应用程序内所有应用程序对象公用的方法、属性和事件。所以global中能处理的事件不止我刚才提到的两种,更多详细内容可点击 阅读原文 到我的博客中查找相关的文章。
如图所示,application_start函数是应用程序入口,也就是说,当应用程序启动时,会先调用这个方法。
再看方法内部,它给所有后续的程序注册了路由,筛选,打包器三个规则,但这三个规则没有直接写在函数中,而是调用了app_start文件下的配置类来管理。接下来我们就来看app_start这个文件夹的作用。
app_start文件夹app_start文件夹在mvc架构中是存放应用程序启动时全局配置的逻辑文件。当我们创建mvc项目后,会自动生成以下三个文件:
bundleconfig(打包器)
作用:将静态文件(例如css,js文件)打包,便于调用。
filterconfig(过滤器)
作用:可以判断用户登录和权限,动态action管理,防篡改等。
routeconfig(路由器)
作用:将浏览器的url请求映射到特定的mvc控制器动作。也就是将网站的url不再以.html或.aspx结尾,而是设定为统一的模式来显示。
controllermvc的核心就是controller(控制器),它负责处理浏览器传送过来的所有请求,并决定要将什么内容响应给浏览器。controller文件夹下储存的就是各种控制器文件。
控制器本身只是一个类,该类有许多方法。在这些方法中,只要是公开方法,该方法就会被视为是一种动作(action)。只要有动作存在,就可以通过该动作方法接收网页请求并决定响应视图。
同时,按照mvc的约定,控制器文件需符合以下规则:
controller必须为公开类;controller名称必须以controller结尾;必须继承自mvc内建的controller类;所以action动作方法必须为公开方法。关于controller的使用方法我会在后续文章中详细说明。
modelsmodels文件夹下,储存的是最终显示到view页面中的视图模型。model主要负责维持数据状态,通过它将数据从数据库中检索出来传递给controller处理,客户端传过来的数据也是通过model传回数据存储系统中。
可以说,model(视图模型)是view(视图)连接数据库的一个桥梁,它将呈现在用户面前的内容转换为可存储在数据库中的内容,也是非常重要的。
viewsview主要用于呈现数据。由于controller和相关的service处理完业务逻辑并将结果打包成了model实体,所以view只需要负责将model实体转换为视图呈现出来。更详细的内容我会在后续文章中加以说明。
web.configweb.config是一个配置文件,是基于xml的文本文件。
在发布web应用程序时,web.config文件并不编译进dll文件中,它主要存储一些asp.net应用程序的配置信息,比如上传文件的保存路径可配置在appsettings节点;数据库连接字符可保存在connectionstrings节点;用于定义自定义错误信息的customerrors节点等等…
总结通过本文可以了解到,如何创建第一个mvc项目、mvc框架的目录结构以及mvc下主要文件的作用。更多mvc5框架内容可关注我后续文章。
转速传感器怎么测量好坏
日本政府设立2200亿日元基金推进“后5G”技术研发
高速DSP的PCB抗干扰如何来设计
三星击败小米重回印度市场第一 小米二季度印度市场出货量1000万部
利用物联网技术为学校日常考勤数据传输提供便利
ASP.NET MVC5教学之如何创建MVC文件架构
域名服务器(DNS)
5G的到来将意味着新技术的突破,新时代的来临
泰国已有14家银行联手制定了泰国区块链社区倡议
芯动科技加入中国首个桌面操作系统根社区openKylin
服务器的功能_服务器是干嘛的
5G基站耗电量惊人已让三大运营商难以承受
移动终端领域IC厂商深圳天德钰登录科创板
普渡科技获近亿元B+轮融资,加速开拓餐饮机器人市场
2021年的央视春晚AR虚拟技术是怎么做的?
欧菲光2020年营收总额超过484亿
热电偶分类及区别
模拟音频接口有哪些
新一代灭蚊专家属于无人机你见过吗
传统车企抱团取暖,新能源汽车发展怎么样?特斯拉告诉你答案