在Asp.net MVC中重用ViewModel

时间:2011-07-25 12:19:58

标签: asp.net-mvc mvvm asp.net-mvc-viewmodel

我见过很多关于MVVM与MVC和博客的博客,他们说MVVM就像Windows中的MVC扩展。

我有一个设计问题,我已经制作了一个使用MVVM的win应用程序,现在我必须在Web中创建一个相同的应用程序,所以我决定在Asp.net中使用MVC模式,但现在我再次陷入困境。

如何在MVC中重用ViewModel?因为ViewModel具有导入命名空间System.Windows.Input。

还有其他灵魂吗?我的主要要求是重用应用程序逻辑?

我使用http://waf.codeplex.com/ WpfApplication框架作为参考。

提前致谢。

2 个答案:

答案 0 :(得分:5)

事实是两者不可互换。他们也不应该(在实际意义上)。是的,您可以创建也可以在ASP.NET MVC中重用的ViewModel。但是你必须加入抽象的数量会使这项运动变得毫无用处。

你不应该浪费时间担心这种不相容性,努力减少/消除它。

这段代码应该在两个应用程序中重用。您的ViewModel和控制器属于他们设计用于服务的应用程序框架。

答案 1 :(得分:2)

您的业务逻辑应该在您的模型中,而不是在您的视图模型中。所以这是你想要重用的模型,没有别的。视图模型特定于Windows应用程序,并且等同于特定于Web应用程序的控制器。