【问题标题】:MVVM pattern with ASP.NET MVC: which tasks it must be responsible for?带有 ASP.NET MVC 的 MVVM 模式:它必须负责哪些任务?
【发布时间】:2013-11-12 13:55:44
【问题描述】:

有很多关于 MVVM 的帖子以及与 MVC 模式有关的帖子,like this

他们大多描述只是一般概念应该MVVM做什么(例如,“删除大部分从 ViewModel 到 Controller 的逻辑”等)。

我想更具体地了解应用逻辑中的哪些任务更适合迁移到 ViewModel 而不是将它们放在 Controller 中?

(尽管在 Controller 中拥有所有业务逻辑很棒,但仍有一些任务与“客户端”(或至少“演示”)相关,但仍然必须在服务器端完成(例如使用 C#),如数据格式化、本地化等)

(讨论关于使用 ViewModel 扩展的 ASP.NET MVC(即 Web)。

还有什么?

谢谢。

【问题讨论】:

  • 除了数据格式化和本地化之外,您还关心什么?我怀疑是否有详尽的清单。
  • 嗯,这就是我要澄清的,这也是可能的......问题是我正在考虑为 MVVM 创建某种框架,因此试图了解什么是任务,这可能会参与其(MVVM)工作。另外,“数据格式化”这个词也够宽泛了……
  • 你为什么将块移到引用中?这(仍然)只是我的想法。 :)
  • 我的道歉 - 我误解并回滚到原来的版本。

标签: c# asp.net-mvc model-view-controller mvvm


【解决方案1】:

我不是 MVC 开发人员(但 MVVM 开发人员),但我想我可能知道你在问什么。

1. MVVM 的主要好处是绑定。(即您想在 TextBox 中输入文本时同时更改标签,那么您可以使用 Binding 轻松完成)

2. 要执行客户端操作,请使用 MVVM。 MVC 用于执行服务器端操作。

3. MVVM 用于在不向服务器发送请求的情况下更新 UI,这在许多场景中非常有用。

因此请牢记这些要点并相应地移动您的代码。

可能我错过了一些要点,但作为一名 MVVM 开发人员,我会尽可能多地通知您。

【讨论】:

  • 感谢您的回答,但这些仍然是很笼统的事情。我对 MVVM 非常熟悉,并且知道它通常是如何工作的,但我更愿意对生命周期示例感兴趣,哪些任务最好从 Controller 移动到 MVVM 部分。
  • “MVVM 用于在不向服务器发送请求的情况下更新 UI” - 你在谈论 javascript 吗?但我的问题只是关于服务器部分......
  • 是的,我说的是javascript,我认为knokoutJS是用于在MVC中实现MVVM的,我不知道其他方式。对于服务器部分,MVC 比 MVVM 更有用和更强大。如果我得到更多细节,我会告诉你的
  • 感谢您的回答。我确实知道淘汰赛。但这是 javascript 部分——如果你需要在客户端部分(意思是在浏览器中)做点什么——你别无选择。所以,这就是为什么我要询问服务器部分(从 Controller 移动到 ViewModel 的东西)。
  • 我研究了一些,发现在服务器端没有使用MVVM,只使用MVC。而在这一行中:“将大部分逻辑从 ViewModel 移到 Controller”Model 不等于 ViewModel?因为有些开发者使用 ViewModel 这个词来表示模型(我觉得有点奇怪)
猜你喜欢
  • 2013-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多