asp.net-mvc – ASP.NET MVC术语让我沮丧 – 为什么’ViewModel’?

我是一个ASP.NET MVC新手,但之前使用过很多模型 – 视图 – 控制器框架.

recently came across将您的特定视图需要的数据(实际上,它被分配给ViewData)收集到一个名为(NameOfView)viewmodel的新类的约定.

收集这些数据,使其与View / Controller交互提供的功能相关联,这使我成为一个辅助结构,甚至是闭包机制(在’封装一组变量’的意义上).

那么为什么它被称为’viewmodel’,因为它既不是视图也不是模型?

有没有其他人觉得这个名字令人困惑?

编辑:只是将属性放到View上有什么问题,以便Controller可以填充它们(如在其他MVC框架中)?

解决方法

该模型是数据的视图不可知表示.视图模型是数据的视图特定表示:它是可能从给定视点出现的模型.

考虑一个由原始数据点组成的模型;然后,直方图视图可能具有视图模型,该视图模型由一组桶和从该数据中提取的总数组成.

从逻辑上讲,它是模型的子集或转换 – 它可以使用视图特定功能按需生成,并且模型作为其唯一输入.

关于视图与属性包或自定义对象的属性……我确信有人对此有强烈的感受,但我个人并不认为有很大的区别.您正在生成模型的视图特定表示并以某种方式传递它;确切的机制似乎并不那么重要.

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...