ASP.NET Core MVC 设计模式 - ASP.NET Core 基础教程 - 简单教程,简单编程

简介: 原文:ASP.NET Core MVC 设计模式 - ASP.NET Core 基础教程 - 简单教程,简单编程   ASP.NET Core MVC 设计模式 上一章节中,我们提到 ASP.NET Core 支持 MVC 开发模式,不知道大家对 MVC 设计模式是否了解,算了,不管了,本章节我们就来讲讲 MVC 设计模式吧。

原文:ASP.NET Core MVC 设计模式 - ASP.NET Core 基础教程 - 简单教程,简单编程

 

ASP.NET Core MVC 设计模式

上一章节中,我们提到 ASP.NET Core 支持 MVC 开发模式,不知道大家对 MVC 设计模式是否了解,算了,不管了,本章节我们就来讲讲 MVC 设计模式吧。

MVC 设计模式

MVC ( 模型 - 视图 - 控制器 ) 设计模式作为一种设计模式, 实际上已经存在了几十年,并且已经用于许多不同的技术,从 Smalltalk 到 C ++Java 。 现在 C# 和 .NET 也使用它作为构建用户界面的一种设计模式

MVC 设计模式是软件应用程序用户界面层的流行设计模式

比较大型的程序,通常将 模型 - 视图 - 控制器 中的 UI 层与应用程序中的其它设计模式组合在一起,例如数据访问模式和消息传递模式

这些设计模式将一起构建完整的应用程序堆栈

MVC 设计模式将应用程序的用户界面 ( UI ) 分为以下三部分:

  1. 模型 - 描述正在使用的数据以及业务逻辑的一组类
  2. 视图 - 定义应用程序的 UI 将如何显示。这是一个纯粹的 HTML,它决定了 UI 的外观
  3. 控制器 - 一组用来处理来自用户的交流通讯,整体应用程序流和特定于应用程序的逻辑的类

MVC 背后的理念

现在,我们来了解下 MVC 背后的理念

使用 MVC 设计模式,我们将拥有一个称为视图的组件,它独自负责呈现该用户界面,不管它是 HTML 还是桌面应用程序上的 UI 小部件

该视图与模型通讯,模型包含视图需要显示的所有数据

Web 应用程序中,视图可能根本没有任何关联的代码, 它可能只是 HTML,然后是从模型中获取数据片段的表达式,并将它们插入到我们在视图中构建的 HTML 模板中的正确位置

控制器用于组织一切。当一个 HTTP 请求到达 MVC 应用程序时,请求会被路由到一个控制器,然后由控制器来与数据库,文件系统或模型交谈

ASP.NET Core 中的 MVC

ASP.NET Core 也使用了 MVC 设计模式,当控制器接收到一个 HTTP 请求时, 控制器必须弄清楚如何将这些信息放在一起来响应这个请求。

比如用户想要浏览应用程序的 /books 页面,那么,控制器需要将这些信息放在一起以显示书籍列表。

在这种情况下,控制器将建立一个模型

  1. 模型不知道也不必知道有关 HTTP 请求或控制器的任何信息
  2. 模型仅负责保存用户想要查看的书籍信息以及与该书目列表相关的任何逻辑
  3. 模型可能仅仅是我们可以使用的另一个 C# 类,如果复杂一点,则可能有多个类
  4. 一旦将模型放在一起,控制器就可以选择一个视图来渲染模型
  5. 该视图将使用模型中的信息,如所有书籍和每本书名等,并使用该信息构建 HTML 页面
  6. 然后,该 HTML 将作为 HTTP 响应发送回客户端,并完成整个 HTTP 请求和响应事务

这些都是 MVC 设计模式的基础,这种模式背后的理念是保持关注的分离。

控制器只负责接受请求并建立模型。 是将我们需要的逻辑和数据带入视图的模型。 然后视图只负责将该模型转换为 HTML

目录
相关文章
|
27天前
|
存储 开发框架 JSON
ASP.NET Core OData 9 正式发布
【10月更文挑战第8天】Microsoft 在 2024 年 8 月 30 日宣布推出 ASP.NET Core OData 9,此版本与 .NET 8 的 OData 库保持一致,改进了数据编码以符合 OData 规范,并放弃了对旧版 .NET Framework 的支持,仅支持 .NET 8 及更高版本。新版本引入了更快的 JSON 编写器 `System.Text.UTF8JsonWriter`,优化了内存使用和序列化速度。
|
27天前
mcr.microsoft.com/dotnet/core/aspnet:2.1安装libgdiplus
mcr.microsoft.com/dotnet/core/aspnet:2.1安装libgdiplus
27 1
|
2月前
|
开发框架 监控 前端开发
在 ASP.NET Core Web API 中使用操作筛选器统一处理通用操作
【9月更文挑战第27天】操作筛选器是ASP.NET Core MVC和Web API中的一种过滤器,可在操作方法执行前后运行代码,适用于日志记录、性能监控和验证等场景。通过实现`IActionFilter`接口的`OnActionExecuting`和`OnActionExecuted`方法,可以统一处理日志、验证及异常。创建并注册自定义筛选器类,能提升代码的可维护性和复用性。
|
17天前
|
开发框架 JavaScript 前端开发
一个适用于 ASP.NET Core 的轻量级插件框架
一个适用于 ASP.NET Core 的轻量级插件框架
|
前端开发 .NET 数据库
【译】ASP.NET MVC 5 教程 - 4:添加模型
原文:【译】ASP.NET MVC 5 教程 - 4:添加模型 在本节中,我们将添加一些管理电影数据库的类,这些类在ASP.NET MVC 应用程序中扮演“Model”的角色。 我们将使用.NET Framework平台上熟知的Entity Framework 数据访问技术来定义和使用这些模型。
939 0
|
前端开发 .NET 数据库
【译】ASP.NET MVC 5 教程 - 6:通过控制器访问模型的数据
原文:【译】ASP.NET MVC 5 教程 - 6:通过控制器访问模型的数据 在本节中,你将新建一个MoviesController 类,并编写获取电影数据的代码,使用视图模板将数据展示在浏览器中。 在进行下一步之前,你需要先编译应用程序,否则在添加控制器的时候会出错。
1112 0
|
SQL 前端开发 .NET
ASP.NET MVC Music Store教程(4):模型和数据访问
转自http://firechun.blog.163.com/blog/static/318045222011029105328664/ 迄今为止,我们只是把“模拟数据”从控制器传递到视图模板,现在,我们要挂上真实的数据库了。
1154 0
|
前端开发 .NET C++
ASP.NET MVC Music Store教程(3):视图和视图模型
转自http://firechun.blog.163.com/blog/static/31804522201102711480936/ 到目前为止,我们仅仅从控制器动作返回字符串,这是一个了解控制器如何工作的好方法,但这并不是你想要的真实的Web应用程序。
991 0
|
Web App开发 前端开发 .NET
ASP.NET MVC Music Store教程(6):使用数据注释为模型进行验证
转自http://firechun.blog.163.com/blog/static/31804522201103133832931/ 在Edit和Create表单中有一个很严重的问题:没有做任何验证。
1039 0
|
前端开发 .NET 开发框架
ASP.NET MVC 重点教程一周年版 总结:ASP.NET MVC模型
ASP.NET MVC 重点教程一周年版算是书写完毕了,在最后,用一个ASP.NET MVC的模型来总结一下这些篇 文章,也最后清理一下思路
819 0