【发布时间】:2012-08-13 14:20:55
【问题描述】:
我有一个关于 MVVM 和 MVC 的问题。我正在开发一个桌面客户端和 Web 应用程序。我打算使用 WPF(和 MVVM)开发桌面客户端和 Web 应用程序的 ASP.Net MVC。
我以前从未使用过 ASP.Net MVC,尽管我从来没有真正喜欢过 Web 表单(母版页、输出缓存等一些功能除外),而且我主要使用 AJAX (jQuery) 和处理程序来填充 HTML 和处理输入(我认为我在阅读了有关该模式的内容后接近 MVC,但方式不同)。
现在这些应用程序将大多具有相同的输入、报告和数据库。我计划创建可以在 MVVM 和 MVC 中重复使用的模型。但是在阅读了关于这些模式的各种文章,以及对 ASP.Net MVC 代码的分析之后,我怀疑它是否可以做到。在 MVVM 中,View 永远不知道 Model,而在 MVC 中,Controller 与 View 共享 Model。此外,在 ASP.Net MVC 中,视图(ASPX 文件)是从 System.Web.Mvc.ViewPage 派生的,而标签/标题是从模型本身填充的。
有没有一种方法可以让两个应用程序使用相同的模型?
谢谢。
Ritesh
【问题讨论】:
-
“在 MVVM 中,视图永远不知道模型”不。不正确。视图与模型绑定。
-
@Will:不。如 Darin 所述,它绑定到 VM。
-
@Will - 在 MVVM 中,我们不直接将控件与模型绑定。 ViewModel 中有用于绑定的桥接属性。
-
@Ritesh:不幸的是,这种错误的信念可能会花费你一些编码时间。
-
@jgauffin: :|如果您的模型旨在支持这一点,那么您没有理由不能绑定到模型。如果没有,您可以使用自定义类型描述符来弥补差距。见鬼,你甚至可以通过 T4 模板为它们自动生成代码。为什么要包装每个模型以将其隐藏在视图中?这是浪费时间。
标签: asp.net-mvc model-view-controller mvvm