我有关于MVVM和MVC的查询。我正在开发一个桌面客户端和Web应用程序。我打算使用WPF(和MVVM)为Web应用程序开发桌面客户端和ASP.Net MVC。
我之前从未使用过ASP.Net MVC,虽然我从来没有真正喜欢过Web Forms(除了Master Page,输出Cache之类的一些功能等),而且我主要使用AJAX(jQuery)和处理程序来填充HTML和处理输入(我认为在阅读了模式后我接近MVC但是以不同的方式)。
现在这些应用程序将主要具有相同的输入,报告和数据库。我打算创建可以在MVVM和MVC中重用的Model。但在阅读了有关这些模式的各种文章以及ASP.Net MVC Code的分析之后,我怀疑它是否可以完成。在MVVM中,View永远不会知道Model,而在MVC中,Controller与View共享Model。此外,在ASP.Net MVC中,View(ASPX文件)派生自System.Web.Mvc.ViewPage,标签/标题从Model本身填充。
有没有办法可以为这两个应用程序使用相同的模型?
谢谢。
仅限Ritesh
答案 0 :(得分:2)
在MVVM中,View永远不会知道Model,而在MVC中,Controller与View共享Model。
不太对劲。在MVVM中,视图绑定到视图模型。与ASP.NET MVC完全相同。在ASP.NET MVC中,Controller不与View共享Model。它共享一个View Model。它与Model对话,然后构建一个传递给View的View Model。
与MVVM中的MVC相反,View可以与模型进行对话,但这种情况在整个View模型中间接发生,因此View和Model都不了解彼此的存在。
因此,您可以在桌面客户端应用程序和Web应用程序中使用相同的模型。唯一的区别是视图模型。