asp.net-mvc - 我们在 MVC(Web)和 MVVM(桌面)框架中对 ViewModel 有不同的含义吗?

标签 asp.net-mvc wpf asp.net-mvc-4 mvvm

MVC 框架:我对 MVC 中的 ViewModel 的理解是单个模型中不同模型的集合并传入 View ,因为我们可以将一个模型传递给 View 。

MVVM 框架 :在 MVVM 框架中,ViewModel 将具有表示逻辑以及模型对象,但这不是模型对象的组合
基本上 ViewModel 用于事件和通知。

请给出你的想法。

最佳答案

你的观察是正确的。

ViewModel 在 MVC 中是被动的,而在 MVVM 中是主动的。
在 MVC 中,默认情况下我们称之为 ViewModel 的东西可能简称为 Model。

相似之处:

  • MVC 和 MVVM 中的 ViewModel 向 View 提供数据,以便 View 可以很好地向用户显示
  • ViewModel 可以聚合子 ViewModel,但最终有一个实例通过属性提供给 View (在 MVC 中称为 Model,在 MVVM 中称为 DataContext)

  • 差异:
  • MVVM 中的 ViewModel 通过 ICommand 实现为用户提供可以根据其他属性的值动态启用/禁用的操作,这些属性通常实现 INotifyPropertyChanged
  • 数据绑定(bind)存在于两个世界中,但在 MVC 中它只是“OneTime”,而在 MVVM 中它可以是“OneTime”、“OneWay”、“TwoWay”甚至“OneWayToSource”
  • 关于asp.net-mvc - 我们在 MVC(Web)和 MVVM(桌面)框架中对 ViewModel 有不同的含义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32331620/

    相关文章:

    c# - 刚接触 ASP.NET MVC,我不了解 ViewData 和/或 ViewBag 的使用

    ajax - jQuery 将类作为 POST 参数发送

    asp.net - MVC ApiController JSON 对象根

    asp.net-mvc - MVC DropDownListFor 获取 2 个名字

    javascript - 使用javascript中的View处理 bool 值

    asp.net-mvc - ASP.NET MVC eurl.axd错误

    c# - 调度程序调用行为不一致

    c# - 设置网格以填充整个屏幕

    c# - 使用事件等待句柄阻止窗口关闭,然后包装为异步等待。可以接受吗?

    c# - 我们如何通过在 asp.net MVC 6 中实现异步 Controller 来实现性能?