ViewBag和ViewData都可以向视图中传递数据,这一过程叫做强类型视图
也可以通过return View();方法向视图中传递数据
上图是向默认视图中传递数据的。如果要向指定视图中传递数据可以使用如下两种方法
方法一:return View("List", pList);--向LIst视图中传递PList数据
方法二:return View("~/Views/Home/About.cshtml", pList);--向指定路径视图中传递数据,可以不再同一个方法中
在视图中使用数据
<html> <head> <meta name="viewport" content="width=device-width" /> <title></title> </head> <body> <div> @model IEnumerable<BaWei.MVC.Unit05.Models.ProductViewModel> @foreach (var p in Model) { <div> 编号:@p.Id 名称:@p.Name 描述:@p.Remark </div> } </div> </body> </html>
在这个视图中,是使用@model来存储从控制器传过来的泛型集合的,并且类型变成了IEnumerable,IEnumerable是所有枚举类型的基接口。
视图模型
视图模型通常使用ViewModel结尾,是一个类,只是供视图使用,与三层架构中的数据模型是不一样的。如:
为了又能更好的使用强类型,可以使用视图模型,将相关的数据封装到模型中。也就是将相关的属性编写在一个类中,然后将这个类实例传递给视图。