一、目標
在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循環。