原文: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

ASP.NET Core MVC 设计模式 - ASP.NET Core 基础教程 - 简单教程,简单编程的更多相关文章

  1. 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序

    使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...

  2. Working with Data » 使用Visual Studio开发ASP.NET Core MVC and Entity Framework Core初学者教程

    原文地址:https://docs.asp.net/en/latest/data/ef-mvc/intro.html The Contoso University sample web applica ...

  3. ASP.NET Core MVC+Layui使用EF Core连接MySQL执行简单的CRUD操作

    前言: 本章主要通过一个完整的示例讲解ASP.NET Core MVC+EF Core对MySQL数据库进行简单的CRUD操作,希望能够为刚入门.NET Core的小伙伴们提供一个完整的参考实例.关于 ...

  4. ASP.NET下MVC设计模式的实现

    [转载]MVC架构在Asp.net中的应用和实现 转载自:http://www.cnblogs.com/baiye7223725/archive/2007/06/07/775390.aspx 摘要:本 ...

  5. ASP.NET的MVC设计模式

    当开发者听到“设计模式”这个词时,他们通常联想到两个场景.一组开发者正在讨论许多创造性意见,正在开会,但是却没有进行编码.另外一组人能制定出正确的计划,保证系统能够开发成功,代码可以重用. 而现实一般 ...

  6. 基于MVC设计模式的Web应用框架:struts2的简单搭建(一)

    Struts2的初步介绍 Struts2是apache项目下的一个web 框架,普遍应用于阿里巴巴.京东等互联网.政府.企业门户网站.虽然之前存在了很大的安全漏洞,在2013年让苹果.中国移动.中国联 ...

  7. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 10. 使用EF Core

    支持的数据库:可以查看官方网站 https://docs.microsoft.com/en-us/ef/core/providers/ 安装了VS2017后会安装了LocalDB,验证localDB ...

  8. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 14. ASP.NET Core Identity 入门

    默认的身份认证好授权系统 UserManager用来操作用户的类, Singi用来身份认证的 添加AccountController 先声明SignInManager和UserManager这两个服务 ...

  9. Asp.Net Core MVC传值 Asp.Net Core API 前台写法

    $("#Add_User").click(function () { var obj = { //"属性名": 传递的值, "User_Name&qu ...

随机推荐

  1. Avro基础 分类: C_OHTERS 2015-02-14 19:56 310人阅读 评论(0) 收藏

    一.Avro的基本功能 1.定义了数据模式文件的语法,一般使用json文件.以及一些数据基本类型与复杂类型. 2.定义了数据序列化到文件后的数据格式,此格式可供各种语言进行读取. 3.为部分语言定义了 ...

  2. null与对象的复杂关系(typeof null的结果是object的原因)

    原文 简书原文:https://www.jianshu.com/p/c1608452d056 前言 对象是 JavaScript 的基础.在 JavaScript 中一共有六种主要类型(术语是“语言类 ...

  3. C++设计模式实现--备忘录(Memento)模式

    一. 备忘录模式 定义:在不破坏封装性的前提下,捕获一个对象的内部状态.并在该对象之外保存这个状态. 这样以后就可将该对象恢复到原先保存的状态. 结构图: 使用范围: Memento 模式比較适用于功 ...

  4. before/after伪类常见用法

    1.清除浮动 ; } /*IE6/IE7*/ .clearfix:after{ display: block; content: "clear"; ; clear: both; o ...

  5. Android 虚拟机学习总结Dalvik虚拟机介绍

    1.Dalvik虚拟机与Java虚拟机的最显著差别是它们分别具有不同的类文件格式以及指令集.Dalvik虚拟机使用的是dex(Dalvik Executable)格式的类文件,而Java虚拟机使用的是 ...

  6. 小强的HTML5移动开发之路(52)——jquerymobile中的触控交互

    当使用移动设备进行触控操作时,最常用的就是轻击.按住屏幕或者手势操作,jQuery Mobile可以通过绑定的触控事件来响应使用者的特定触控行为. 一.轻击与按住 直接上代码(一切皆在代码中,细细品吧 ...

  7. MySQL key分区(五)

    具体描写叙述总结请看MySQL分区(一) 样例:该样例为本人个人学习总结分享->具体说明-->有问题欢迎前来交流

  8. HDU 5044 Tree(树链剖分)

    HDU 5044 Tree field=problem&key=2014+ACM%2FICPC+Asia+Regional+Shanghai+Online&source=1&s ...

  9. NOIP 模拟 序列操作 - 无旋treap

    题意: 一开始有n个非负整数h[i],接下来会进行m次操作,第i次会给出一个数c[i],要求选出c[i]个大于0的数并将它们-1,问最多可以进行多少次? 分析: 首先一个显然的贪心就是每次都将最大的c ...

  10. 微信小程序从零开始开发步骤(一)

    从零到有写一个小程序系列专题,很早以前就想写来分享,但由于项目一直在进展,没有过多的时间研究技术,现在可以继续分享了.1:注册用没有注册过微信公众平台的邮箱注册一个微信公众号, 申请帐号 ,点击 ht ...