2010-06-01 73 views
0

我使用的是asp.net mvc 2,我不确定如何构建模型和视图模型。在nerddinner中,每个只有一个。视图模型和模型,如何分割它们

我应该只有1每个实体(?)的视图模型,然后有1个模型为每个窗体修改视图?因此,viewmodel包含它所需的所有内容,例如:Pagefoo FooClass ...,FooClass,Foowithbunnies,FooClassStats ...?

/M

回答

1

我查看的方式是(域)模型对象表示您的业务实体。任何业务需求决定去那里。

查看模型是为了使视图尽可能简单。所以所有的显示逻辑,数据按摩等等都会去那里。

是的,有些时候人们会渗入另一个(嘿,你的视图模型/花生酱在我的领域模型/巧克力!),并没有问题。

但是你的目标应该是让它们尽可能分离和整洁。这似乎导致了最可重用且易于维护的代码。

0

我一般都有一个ViewModel,它将代表一个View。这是为了保持视图尽可能愚蠢。 所以,现在,这是一对一的关系。 View - > ViewModel, 但我的ViewModel与我的Model有一对多的关系

extract 查看| ---- | ViewModel ViewModel | ---- | <模型

0

我继承了一个应用程序,其中一个数据库表有大约60列。这代表了在应用程序中的多个页面上构建的持久类型。为了解决这个问题,我创建了8个不同的视图模型。

因此......想想ViewModels的方式与您使用SQL View表(如果隐喻有帮助)相同。 ViewModel是一种机制,用于帮助将持久类型的使用限制为对您的视图有用的内容。

此外,我强烈建议在使用ViewModels和Persistent Types之间的转换时使用AutoMapper,它使处理ViewModel感觉更自然。