大家认为MVC里面是不是一定要有ViewModel呢?

英雄不联盟2015 2015-01-10 01:41:46
目前做一个MVC4的项目 用匿名对象是可以解决一些问题的 但是有些场景必须要有ViewModel参与 感觉有点麻烦 大家讨论下 有没有什么好些的办法?
...全文
937 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
x80819092 2017-04-27
  • 打赏
  • 举报
回复
引用 19 楼 foren_whb 的回复:
如果用ef的codefirst,就可以完全摒弃viewmodel,反正近几年,我主导的项目,都没有用viewmodel,直接用dbmodel
我就是codefirst,VM几乎是什么时候都推荐的,dbmodel是实体类,VM是VM,有的时候还需要pure VM,只是为了验证之类的
丰云 2017-04-27
  • 打赏
  • 举报
回复
如果用ef的codefirst,就可以完全摒弃viewmodel,反正近几年,我主导的项目,都没有用viewmodel,直接用dbmodel
resources_123 2017-04-27
  • 打赏
  • 举报
回复
利用数据库视图
peng2739956 2017-02-28
  • 打赏
  • 举报
回复
引用 2 楼 devmiao 的回复:
学生的习作无所谓。 不过很快你就感觉不便了。 比如说,一个商品表有20个字段,显示在购物车中的无非图片、商品名、单价这几个,你还传一个数据库表,你自然就是知道不是一点麻烦了。为了不太麻烦,那就接受一点麻烦。 总之,自己去写程序,自己领悟。
吸分好快. 难道又要出现一个wuyiqin的女大神
XBodhi. 2017-02-24
  • 打赏
  • 举报
回复
ViewModel 出现在了 WPF 中。
  • 打赏
  • 举报
回复
我不知道为什么为出来这样的疑问?做着做着,只有那些个别地方,使用少得可怜的才会用匿名对象。 ViewModel可以继承,可以组合,完全面向对象地构建视图
天空丶蒋 2017-02-23
  • 打赏
  • 举报
回复
举个简单例子,在某些时候你需要取数据库中N张表的数据段,但又不是这N张表所有的数据,而你又不想拿取单个字段的传值,这时候你使用一个模型,将你需要的字段放到这个模型中,然后再由这个模型传入到界面。这个模型就是ViewModel了。。 。
天空丶蒋 2017-02-23
  • 打赏
  • 举报
回复
不要想得太多,ViewModel就是给界面用的一个模型而已....只是传输数据的一种格式...
baidu_27549073 2017-02-20
  • 打赏
  • 举报
回复
sp1234真是大神啊,现再有什么方向性问题都习惯在百度搜索 ”问题 sp1234”
  • 打赏
  • 举报
回复
这个viewmodel只是 asp.net mvc中的“数据实体”,不是mvvm开始模式中的model,楼主可以查找一些前端框架如 angular或者knockout
我是三峡移民 2017-02-20
  • 打赏
  • 举报
回复
谁跟你说的数据实体是model,瞎几把糊弄人,实体是实体类,model是根据情况增加的,需要什么弄什么,是不确定的,不弄model,也是可以的,你喜欢多些viewbag也是没有办法的,json也是可以做传递的,总之到底用不用,个人习惯,我一般都是看代码思路和代码量考虑用不用,像我这种会几种传递的不用Model也是可以的,你要是只会用Model传,那还说什么,还有mvc,没用model了,就不是mvc了,叫3层+vc,楼主用不用3层都不确定,不用3层的话,呵,退一步说model,本身学问也是很多的,虽然我现在还没有弄懂
我是三峡移民 2017-02-20
  • 打赏
  • 举报
回复
查了一下,感觉毛病得很哦,明明就是Model。叫什么viewmodel
我是三峡移民 2017-02-20
  • 打赏
  • 举报
回复
ViewModel是个什么东东?
  • 打赏
  • 举报
回复
ViewModel 就是让你把“一个”前端界面的数据指标给规范到“一个”数据结构中,而不是分散地丢在什么 HiddenField、__ViewState、各种前端UI控件、javascript全局变量中。这样当数据改变,界面就自动改变了;当界面有响应,数据也产生变化了。 这哪里纠缠什么数据库里的实体了呢? 如果学生学习靠“自学”可能会被一堆错误的开发模式所淹没,根本没有花精力去设计 ViewModel,也集中不起精力来好好设计 ViewModel。逃避开真正有难度的前端设计,只知道弄点数据库表中的数据觉得最省力。
  • 打赏
  • 举报
回复
其实有些代码,你觉得用跟不用差不多,因为根本就不应该是那么用的。 给大妈一个 iPad,她把它当切菜板使用。就是这么回事。
  • 打赏
  • 举报
回复
把 ViewModel 误以为是数据实体 Model,是完全没有搞懂什么是 ViewModel 的表现。 比如说你的页面是一个“工程进度表”,我们且不论除了中间焦点内容以外的一大堆内容,单说中间的使用通用的 Grid 组件/控件所绑定的明细数据部分,假设它有40行内容,那么你需要在 ViewModel 中记录这个明细数据的读取来源(服务地址和业务查询条件)是哪里、页面现在是多少号、每一页有多少行。假设用户修改每页行数,或者改变页号,你的代码就需要重新查询后台数据库来找到一页数据。 你以为数据库表里边有“一页纸”这种数据单位吗?数据库表里有数据源服务地址这种东西吗?当然没有。 ViewModel 记录的东西是前端表现所需要的,根本不是从什么数据库表出发来设计的。满脑子只有数据库“增上改查”的人是不可能设计好 ViewModel 的,因为想不到该有什么内容。
leeshuiwua 2015-01-10
  • 打赏
  • 举报
回复
才弄明白ViewModel是什么意思,其实ViewModel易维护,匿名易用
李化贝 2015-01-10
  • 打赏
  • 举报
回复
ViewModel挺好的呀,小项目无所谓,大项目还是ViewModel更好点吧 起码,有条理,清楚
devmiao 2015-01-10
  • 打赏
  • 举报
回复
学生的习作无所谓。 不过很快你就感觉不便了。 比如说,一个商品表有20个字段,显示在购物车中的无非图片、商品名、单价这几个,你还传一个数据库表,你自然就是知道不是一点麻烦了。为了不太麻烦,那就接受一点麻烦。 总之,自己去写程序,自己领悟。
Xanl 2015-01-10
  • 打赏
  • 举报
回复
匿名的开发方便 ViewModel维护方便
课程介绍本套课程,大喵将带着大家手把手,编辑每一行代码,使用原生Javascipt及ES6的一些新特性,仿照目前国内非常流行的Vue框架的源码,开发构建一个属于你们自己的MVVM框架。让大家能够很清晰的学习及掌握,模板编译,数据绑定,响应式,文档碎片,观察者模式,发布订阅模式等等,这些Vue的核心知识点,都是怎么回事,它们之间有哪些关联,是如何进行双向数据绑定的等等。在使用vue2.x的核心Object.defineProperty构建完成框架后,大喵也会使用Vue3.0引入的数据劫持的Proxy新特性,来改造我们的MVVM框架,提升我们的框架性能。最终,大喵会手把手带着大家,从0开始配置webpack.config.js配置文件以及引入babel-loader,配置.babelrc文件,转换我们JS文件中的的ES6语法,最终压缩输出我们的MVVM框架库文件。课程目录01 手把手搭建MVVM框架 课程介绍、02 文件结构及基础类创建、03 入口类DamiaoMvvm的实现、04 模板编译、05 元素节点解析编译、06 v-model 数据绑定逻辑梳理、07 v-model 数据绑定实现、08 模板文本编译逻辑梳理、09 模板文本渲染绑定、10 观察者Wather逻辑梳理、11 Wather 逻辑实现、12 Object.defineProperty()、13 defineProperty 小案例、14 observer数据劫持梳理、15 defineProperty数据劫持实现、16 发布订阅类实现、17 Proxy 介绍与概述、18 使用Proxy改造MVVM框架、19 使用Proxy实现响应式、20 webpack 打包配置、21 babel 配置及文件输出、22 Mvvm Proxy 框架打包、23 Mvvm 框架搭建课程总结MVVM框架介绍MVVM是 Model-View-ViewModel 的缩写。mvvm是一种设计思想。Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。在MVVM架构模式下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。

62,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧