c# mvc4 ViewModels 概念
因为mvc4 也出来一段时间了,但是我是初学者,之前的MVC3,MVC2之类的项目,书籍都没接触过,上来就直接MVC4了.
照着官网案例再做,有些概念没弄懂,还望大虾们指点迷津.
诸如ViewModels 的概念.
这个我已经百度过,没有专门像百度百科那样的解释.概念比较模糊.
MVC新建项目 Models , view ,Controllers 是MVC约定好的.
model放实体,view 是界面,Controllers 是逻辑
那viewModel 是属于约定吗?还是自己定义的一个文件夹就放 根据业务组合的model 的吗?
------解决方案--------------------如果一个View涉及到多个Model,就需要定义一个ViewModel了吧。
我的理解是只是为了View而创建的类.
------解决方案--------------------ViewModel不需要特别的概念,一般就是和View一一对应的一个数据结构。它可能组合了很多的业务逻辑或者数据库表中的数据,而区别于其它的Model。
------解决方案--------------------ViewModel是为了便于绑定到View而添加的一个东西,你在MVC中可以不需要ViewModel这么一个东西,那么你就需要自己在Controller和View之间一个个的传值了。
换个角度,有了ViewModel,你可以一次性把所有的数据拉过来到View中使用,如果没有ViewModel,那么你就需要自己做绑定,性质跟Model差不多,只不过Model是针对于数据库标准而制定的,而ViewModel跟数据库没有直接的关系。
------解决方案--------------------
可以这么理解。但是这种约定是属于Convention一类的性质。
------解决方案--------------------晕死。纠结到asp.net mvc这可真是奇怪了。
在我的XAML的项目中,通常我会自然而然地分成这样几个文件夹:
images 图片、图标
models 从应用服务器工程共享来的“失血模型”通信实体的.cs文件
views 带有.xaml的界面。其中很少在.cs文件中写代码,尽量使用绑定,使用Blend而不是vs开发
view_models 与view一一对应,实现view的DataContext的绑定数据源对象
behaviors 支持在blend美工板上为xaml中个元素拖入各种操作行为
converters 数据绑定时使用的格式化方法
Themes 皮肤样式
framework_elements
------解决方案--------------------在你使用微软的xaml开发时,纠结在什么 MVC 三个字母,实在是“弱爆了”,那缺乏技术含量。
所以如果你要学习 view_model,那么就别纠结在 MVC 这么简单的概念上打转转。