0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ASP.NET MVC5教学之如何创建MVC文件架构

jf_78858299 来源:python技术探秘 作者:一品文学阁 2023-03-29 11:15 次阅读

在讲解关于MVC文件架构之前,我们先来创建一个MVC的项目。

创建MVC项目

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

首先打开VS2019,在启动页选择【创建新项目】。

图片

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

图片

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

图片

选择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(存放JavaScript文件)

    存放js文件。

  8. fonts(存放字体文件)

    存放字体文件。

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

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

  10. 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项目后,会自动生成以下三个文件:

  1. BundleConfig(打包器)

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

  2. FilterConfig(过滤器)

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

  3. RouteConfig(路由器)

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

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节点等等…

总结

通过本文可以了解到,如何创建第一个MVC项目、MVC框架的目录结构以及MVC下主要文件的作用。更多MVC5框架内容可关注我后续文章。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16197

    浏览量

    177393
  • Asp.net
    +关注

    关注

    0

    文章

    36

    浏览量

    13844
  • MVC
    MVC
    +关注

    关注

    0

    文章

    73

    浏览量

    13841
收藏 人收藏

    评论

    相关推荐

    鼎普科技诚聘.net开发工程师

    asp.net mvc架构,能够进行mvc项目开发 北京鼎普科技股份有限公司诚聘:测试主管、windows内核开发工程师、C/C++中高级开发人员、linux开发工程师、嵌入式开发工程
    发表于 02-18 11:38

    Net系列MVC的使用

    2018-04-08 开胃学习Net 系列 - MVC作业
    发表于 03-27 15:35

    北大青鸟asp.net教程

    北大青鸟asp.net教程.ASP.NET 和 Web 窗体 理解Web窗体和在B/S结构中IIS的工作原理在ASP.NET应用程序中使用可视化组件和  ASP.NET内部对
    发表于 07-15 16:21 0次下载

    Programming Microsoft ASP.NET

    Programming Microsoft ASP.NET 3.5 ASP.NET pages are dynamically compiled on demand when first
    发表于 10-21 09:23 59次下载
    Programming Microsoft <b class='flag-5'>ASP.NET</b>

    ASP.NET课程设计案例精编

    ASP.NET课程设计案例精编是一本全面讲解ASP.NET编程方法和技巧的书,从ASP.NET的基本知识点入手,以ASP.NET网络应用为主,详细讲述了大量的编程实例。这些实例基
    发表于 01-07 16:14 144次下载
    <b class='flag-5'>ASP.NET</b>课程设计案例精编

    Web Service和ASP.NET在GIS中的应用探讨

    介绍Web Service 和ASP.NET 的基本结构和概念,针对传统GIS 存在的数据共享困难,以及出于简化GIS 开发过程的考虑,提出了基于Web Service 和ASP.NET 的GIS 架构,通过ADO.
    发表于 08-31 16:32 8次下载

    Asp.net MVC框架自定义视图引擎的实现

    针对当前Web 应用系统层次不够分明、结构不够清晰等不足,结合MVC 设计模式,实现了基于Asp.net MVC 框架的自定义视图引擎,在显示层将显示逻辑与应用逻辑相分离,将数据访问
    发表于 01-15 14:13 36次下载

    ASP.NET 2.0网络开发技术》 ASP.NET 2.0核

    ASP.NET 2.0网络开发技术》 ASP.NET 2.0核心对象
    发表于 02-07 15:05 0次下载

    ASP.NET 2.0网络开发技术》 走进ASP.NET 2.

    ASP.NET 2.0网络开发技术》 走进ASP.NET 2.0
    发表于 02-07 15:11 0次下载

    ASP.net Ajax开发》初识ASP.NET AJAX

    ASP.net Ajax开发》初识ASP.NET AJAX
    发表于 02-07 15:11 0次下载

    如何使用MVC来开发音乐商店网站?

    ASP.NET MVC框架是微软推出的一种使用MVC进行网站开发的应用,MVC的全称是模型一视图一控制器,由3个分离的主要的组件组成,分别是:模型,视图和控制器。
    发表于 08-28 08:00 6次下载
    如何使用<b class='flag-5'>MVC</b>来开发音乐商店网站?

    常用HTML、CSS那你知道ASP.NET吗?

    简单来说,ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。 众所周知,目前PHP和ASP.NET是最主流的使用最多的Web网站开发技术。两者之间也是存在竞争关系的,
    的头像 发表于 03-29 11:12 944次阅读

    ASP.NET MVC5教学Global.asax文件

    Global.asax是一个文本文件,它提供全局可用代码。这些代码包括应用程序的事件处理程序以及会话事件、方法和静态变量。有时该文件也被称为应用程序文件。 Global.asax 文件
    的头像 发表于 03-29 11:17 993次阅读
    <b class='flag-5'>ASP.NET</b> <b class='flag-5'>MVC5</b><b class='flag-5'>教学</b><b class='flag-5'>之</b>Global.asax<b class='flag-5'>文件</b>

    ASP.NET MVC5教学之过滤器(上)

    MVC中的每一个请求,都会分配给相应的控制器(Controller)和对应的行为方法(Action)去处理,那么如果我们想要在Action处理的前后加上一些额外的处理逻辑怎么办呢?这时候就用到了过滤器(Filters)。 在ASP.NET
    的头像 发表于 03-29 11:20 876次阅读
    <b class='flag-5'>ASP.NET</b> <b class='flag-5'>MVC5</b><b class='flag-5'>教学</b>之过滤器(上)

    ASP.NET MVC5教学之过滤器(下)

    MVC中的每一个请求,都会分配给相应的控制器(Controller)和对应的行为方法(Action)去处理,那么如果我们想要在Action处理的前后加上一些额外的处理逻辑怎么办呢?这时候就用到了过滤器(Filters)。 在ASP.NET
    的头像 发表于 03-29 11:20 802次阅读
    <b class='flag-5'>ASP.NET</b> <b class='flag-5'>MVC5</b><b class='flag-5'>教学</b>之过滤器(下)