ViewData对于从后台传list到前台的使用
一、目标
在C# MVC开发模式下了解ViewData怎么讲一个List<Model>传到前台,并且前台怎么循环读取出数据
二、平台
vs2019, MVC模式
三、重要部分控制器代码展示
#region 5.PC详情页 public ActionResult PcDetail() { string pcUID = Request["id"].Trim(); if (pcUID!=null || pcUID !="") { //PC详情数据 PcBLL pcbll = new PcBLL(); PcModel pm = new PcModel(); pm = pcbll.getPcByUID(pcUID); //PC配件<CPU>数据 List<PcPart> pp = new List<PcPart>(); pp= pcbll.getPcPartByPcID_class(pcUID); ViewData["pcPart"] = pp; return View(pm); } return Content("没有这样的数据"); } #endregion
四、前端视图写法
@{ var pcParts = ViewData["pcPart"] as List<PcPart>; if (pcParts != null && pcParts.Any()) { foreach (var item in pcParts) { <tr> <td>@item.pcPartClass</td> <td>@item.brand</td> <td>@item.xModel</td> <td>@item.specification</td> <td>@item.price</td> <td>@item.repairStart</td> <td>@item.repairEnd</td> <td>@item.editTime</td> <td>@item.createTime</td> <td>@item.Note</td> </tr> } } }
五、代码解析:
视图中先引用@using 引用实体类(仅引用实体类即可,无需引用具体对象名)
视图中html要展示数据区域写上@{},然后将控制台定义的ViewData转换成List<Model>以便循环。
如例子中:var pcParts = ViewData["pcPart"] as List<PcPart>; 就是将接收到的viewdata转换成一个listModel,便于我们用foreach循环。