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

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

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

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

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

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

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

解决方法

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

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

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

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

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....