视图模型结构作为类似应用程序的基础

时间:2013-06-25 08:46:55

标签: c# asp.net-mvc asp.net-mvc-4

这里类似的我的意思是说我的应用程序有5/6页的问题。我要使用的属性类型对于我的所有应用程序都是相同的。唯一会改变的是问题出现的顺序,如第-1/2/3页/ ......

我创建了一些基类型,以便相同类型的应用程序将使用那些基本类型,其中大多数通用验证将使用数据属性定义。

正如您在图片中看到的那样:enter image description here

现在,我将不得不为每个视图创建视图模型。视图模型将能够以属性的形式使用这些基类型,并且将在同一视图模型中定义一些特定于应用程序的验证。

我已经考虑过所有应用程序的这种结构,因为我会一次又一次地重复相同的内容。我知道每个视图都应该有自己的viewmodel。因此,我将引用基类型程序集并为app创建单独的viewmodel,仅获取特定视图所需的类型。

这是一个很好的方法,因为我想为我的所有应用程序奠定基础吗?

1 个答案:

答案 0 :(得分:0)

简短回答:是的,对我来说很好看

答案很长:

有一个可以重用的基本抽象ViewModel是个好主意。我想你可能想要实际拥有超过1个。

一个名为ViewModelBase或BaseViewModel,它包含ViewModel特有的所有内容,例如INotifyPropertyChange的实现。此案例类通常还实现IViewModel接口以指示它是ViewModel。然后为每个业务逻辑域(在您的情况下是您的问题/答案集)中的基类设置公共业务逻辑

对于验证,如果让我们说,您正在实现IDataErrorInfo,您可以在尽可能最通用的类​​中使用它,具有要验证的属性。通常,一些将发生在基类中,一些发生在派生类

对于每个视图,您可以选择要使用的特定ViewModel。有时,由于继承,这将是非常轻的。您还可以考虑重复使用在UserControls中划分部分的视图(并补充样式)。