当前位置: 首页 > 知识库问答 >
问题:

我到底在用什么?

卞云瀚
2023-03-14

在我之前的实习中,我们有一个C#代码(.NET),它有一个控制器,直接连接到数据库(没有服务层)。控制器将获取信息,格式化为JSON并将其交给Angular的控制器,后者将在视图上显示这些信息。

在我现在的实习中,我们不使用Angular。我们使用.cshtml文件。服务层将其信息提供给控制器,控制器格式化模型并将其提供给.cshtml视图,并显示内容。

我的问题:

工作中的每个人都把这两种方法都称为MVC,我现在真的很困惑。如果都是MVC,那么两者有什么区别呢?

共有1个答案

华振
2023-03-14

Angular绝对更像是模型视图模型。而您现在所做的工作听起来绝对像是MVC。

MVVM是一种特殊的模式,其中UI状态封装在ViewModel中,因此最终UI的呈现是相当哑的,只是数据绑定。显示这个按钮或隐藏这个区域的状态逻辑都封装在ViewModel中。一个好处是,这允许构建单元测试来测试ViewModel,从而隐式地测试所有UI行为。(参见:维基百科关于MVVM的文章和Martin Fowler对表示模型的介绍,MVVM是它的一个变体。)

在MVC中,视图本身可以根据提供的数据(模型)来控制它的行为、您想要显示/隐藏的内容等。这意味着在MVC中,如果不测试UI本身,就无法测试UI行为(例如,如果某个东西基于数据更改正确显示或隐藏)。

在MVC中,UI是“智能的”,并且根据从模型接收到的数据,根据自己的需要重新塑造和呈现自己。

您基本上可以查看UI是如何呈现的,如果您看到UI呈现逻辑根据这个决定做出了很多关于如何呈现自己的决定,那么您就很可能知道您在使用MVC。如果您只是看到大量的数据绑定,其中几乎每个行为都由一个单独的类驱动,这个类封装了显示和隐藏UI片段的所有逻辑,并且这些数据通过数据绑定传递到UI中,那么它可能就是MVVM。

希望这能帮上忙。

 类似资料:
  • 大家最近肯定有这么一个感受——只要一上网,ChatGPT就高频率地映入你的眼帘,人们会忍不住了解这款人工智能有多神、有多火。那对有的人来说,它是款“神器”,标志着人工智能向前迈进了“历史级”的一大步,对有的人来说,它是个“幽灵”,让人恐慌、担忧,一说就是害怕自己被机器取代。

  • 问题内容: 我正在阅读有关该功能的信息。问题是我仍然无法理解其用法。据我所知的唯一的事情是相同调用。 我不明白这本书何时提到你如何在运行时不知道其名称的情况下如何使用它来获取对函数的引用。总的来说,也许这是我在编程方面的菜鸟。谁能给这个问题一些启发?我什么时候以及如何使用它? 问题答案: 完全等同于。 有只有两个原因使用它: 你无法编写,因为你事先不知道想要哪个属性(它来自字符串)。对于元编程非常

  • 问题内容: 我在Python文档的FileObjects中找到了这个: flush()不一定会将文件的数据写入磁盘。使用flush()和os.fsync()来确保此行为。 所以我的问题是:Python到底在做什么?我以为这会强制将数据写入磁盘,但现在我知道并没有。为什么? 问题答案: 通常涉及两个级别的缓冲: 内部缓冲器 操作系统缓冲区 内部缓冲区是由您要针对其进行编程的运行时/库/语言创建的缓冲

  • 问题内容: 在Tour of Go网站的go 1.5发行之前的版本中,有一段代码看起来像这样。 输出看起来像这样: 令我困扰的是,将其删除后,该程序不再显示“世界”。 为什么呢?如何影响执行力? 问题答案: 注意: 从Go 1.5开始,将GOMAXPROCS设置为硬件内核数:golang.org/doc/go1.5#runtime,低于1.5之前的原始答案。 当您在未指定GOMAXPROCS环境变

  • 主要内容:JSP的由来,Servlet与JSP异同点,JSP相对于Servlet的优点JSP(Java Server Pages)是一种动态网页开发技术。JSP 文件就是在传统的 HTML 文件中插入 Java 代码和 JSP 标签,后缀名为 。 JSP 与 PHP、ASP、ASP.NET 等语言类似,都运行在服务端。通常返回给客户端的就是一个 HTML 文件,因此只要有浏览器就能查看 JSP 页面。 JSP 使用 JSP 标签在 HTML 网页中插入 Java 代码,标签通常以

  • 直到我在旧存储库中随机检查 ,我才听说过这个文件,它就是一个我自己没有编辑过也从未见过的文件。我不知道它是如何到达那里的。 似乎很常见 - 主要是如何删除它(例如这里和这里)。 这个文件是什么,是什么创建了它?