我见过很多关于MVVM与MVC和博客的博客,他们说MVVM就像Windows中的MVC扩展。
我有一个设计问题,我已经制作了一个使用MVVM的win应用程序,现在我必须在Web中创建一个相同的应用程序,所以我决定在Asp.net中使用MVC模式,但现在我再次陷入困境。
如何在MVC中重用ViewModel?因为ViewModel具有导入命名空间System.Windows.Input。
还有其他灵魂吗?我的主要要求是重用应用程序逻辑?
我使用http://waf.codeplex.com/ WpfApplication框架作为参考。
提前致谢。
答案 0 :(得分:5)
事实是两者不可互换。他们也不应该(在实际意义上)。是的,您可以创建也可以在ASP.NET MVC中重用的ViewModel。但是你必须加入抽象的数量会使这项运动变得毫无用处。
你不应该浪费时间担心这种不相容性,努力减少/消除它。
这段代码应该在两个应用程序中重用。您的ViewModel和控制器属于他们设计用于服务的应用程序框架。
答案 1 :(得分:2)
您的业务逻辑应该在您的模型中,而不是在您的视图模型中。所以这是你想要重用的模型,没有别的。视图模型特定于Windows应用程序,并且等同于特定于Web应用程序的控制器。