视图模型

每个视图定义一个对象模型可以帮助你跟踪视图的真实所需。所以应该为每一个应用程序中的视图定义视图模型类。

每个视图都应该有一个视图模型类。可以使用控制器名称和视图名称的一个组合。例如,从Home控制器调用的命名Index的视图,其视图模型对象可能被命名为HomelndexViewModel。

更好的做法是,可以在Models文件夹中创建一个名为Home的子文件夹,并在其中建立一个IndexViewModel类。

 

那么如何开发一个视图模型类呢?

首先,视图模型对象是一个只有数据而(几乎)没有行为的普通数据传输对象,视图模型对象上的属性会完全以视图所期望的格式公开数据,它只提供视图所需的数据。围绕视图而非数据来设计视图模型类的结构往往是原则。换句话说,应该倾向于把视图模型类设计为一个容器。视图模型类,最终是为视图建模,而不是为数据。

其次使用一个视图模型对象时,必须在视图模板中声明该视图模型类型。如在视图模板中声明:@model xxxxViewModel。

最后,但具有更好可重用性和预期更长使用寿命的大型项目中,可能要以所使用的所有视图模型类来创建一个独立的类库。在小项目中,可能需要把所有的类隔离到一个特定的文件夹中。可以在Models文件夹创建一个ViewModels文件夹,并将其按控制器设置专属的子文件夹。

例如:

Models》ViewModels》控制器名称》IndexViewModel.cs

Models》ViewModels》控制器名称ABCD》ABCDsyViewModel.cs

posted @ 2017-04-23 23:19  沉默种子  阅读(255)  评论(0编辑  收藏  举报