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

目录
相关文章
|
10月前
|
开发框架 .NET C#
ASP.NET Core Blazor 路由配置和导航
大家好,我是码农刚子。本文系统介绍Blazor单页应用的路由机制,涵盖基础配置、路由参数、编程式导航及高级功能。通过@page指令定义路由,支持参数约束、可选参数与通配符捕获,结合NavigationManager实现页面跳转与参数传递,并演示用户管理、产品展示等典型场景,全面掌握Blazor路由从入门到实战的完整方案。
682 6
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:<https://github.com/khellang/Scrutor>
798 5
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
800 5
|
开发框架 算法 中间件
ASP.NET Core 中的速率限制中间件
在ASP.NET Core中,速率限制中间件用于控制客户端请求速率,防止服务器过载并提高安全性。通过`AddRateLimiter`注册服务,并配置不同策略如固定窗口、滑动窗口、令牌桶和并发限制。这些策略可在全局、控制器或动作级别应用,支持自定义响应处理。使用中间件`UseRateLimiter`启用限流功能,并可通过属性禁用特定控制器或动作的限流。这有助于有效保护API免受滥用和过载。 欢迎关注我的公众号:Net分享 (239字符)
499 1
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
539 3
|
前端开发 中间件 .NET
asp.net core mvc 中间件之WebpackDevMiddleware
asp.net core mvc 中间件之WebpackDevMiddleware WebpackDevMiddleware中间件主要用于开发SPA应用,启用Webpack,增强网页开发体验。好吧,你想用来干嘛就干嘛,这次主要是通过学习该中间件,学习如何在core中启用Webpack支持 通过上上篇asp.
1326 54
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
957 0
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
564 0
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(一)
[回馈]ASP.NET Core MVC开发实战之商城系统(一)
658 0
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
490 7