MVC规定,View即V是纯UI,不允许包含任何的逻辑层,所以在上节实例中已经违反了MVC基本准则(上节实例也是初学者应该遇到的内容),在上例中违反MVC的体系架构规则如下:
1、显示全名——逻辑层
2、使用红色标识年龄大于50的。使用简单逻辑改变了HTML元素的外观——逻辑层
ViewModel
面对可能的问题,微软就会提供解决该问题的方法,提出ViewModel,ViewModel是ASP.NET MVC应用中的隐式声明的层,用来维护Model和View之间的数据传递,是View的数据容器。
Model和ViewModel区别
Model是业务相关数据,是由业务和数据结构构建的模型,而ViewModel 是视图相关的数据,是根据View创建。
工作原理流:
1、用户提出需求,Controller处理用户的交互逻辑,执行简单的判断。
2、Controller获取一个或者多个Model数据
3、Controller决策使用哪个View最符合用户请求
4、Controller将根据Model数据和View需求创建并初始化ViewModel对象
5、Controller将ViewModel数据以ViewData或者ViewBag或者强类型的View等对象传递到View中,并返回View。
ViewModel分别与View,Model关联方式:
1、显示全名——逻辑层
2、使用红色标识年龄大于50的。使用简单逻辑改变了HTML元素的外观——逻辑层
ViewModel
面对可能的问题,微软就会提供解决该问题的方法,提出ViewModel,ViewModel是ASP.NET MVC应用中的隐式声明的层,用来维护Model和View之间的数据传递,是View的数据容器。
Model和ViewModel区别
Model是业务相关数据,是由业务和数据结构构建的模型,而ViewModel 是视图相关的数据,是根据View创建。
工作原理流:
1、用户提出需求,Controller处理用户的交互逻辑,执行简单的判断。
2、Controller获取一个或者多个Model数据
3、Controller决策使用哪个View最符合用户请求
4、Controller将根据Model数据和View需求创建并初始化ViewModel对象
5、Controller将ViewModel数据以ViewData或者ViewBag或者强类型的View等对象传递到View中,并返回View。
ViewModel分别与View,Model关联方式:
View将变成ViewModel的强类型的View,Model却和ViewMo