[Asp.Net Core Mvc] Part.8 使用Model資料模型,透過Scaffolding建立View檢視
這邊說明一下我們在建立View檢視時,通常有二種方式:
【1】是透過Scaffolding(就是從Action滑鼠右鍵建立檢視)
【2】是用手動的方式來建立View,要注意View裡的資料夾對應層次位子,Controller的名稱資料夾不可省略
還記得這篇文章【[Asp.Net Core Mvc] Part.5 Controller/Action/View 基礎建立說明】嗎!?裡面有介紹新增控制器(Controller)時,是選擇「MVC控制器 — 空白」,而這次我們會做一些變化,在建立View直接指定資料模型。
所以,等一下我們要做的是用Model透過Scaffolding來建立View檢視(手動方式就暫先不談),好處是在可以根據的Model裡多個屬性,來快速建立HTML的清單效果,就可以不用動手打那麼多程式碼,也可以利用自動化產出方式,過程上比較不會有問題。
一、建立資料模型
public class CarModel{public int Id { get; set; }public string Label { get; set; }public string Type { get; set; }public double cc { get; set; }public string Color { get; set; }}
二、在 Controller/Action 為資料模型賦值
加入一個控制器CarController,並且新增以下方法(CarList)。
public IActionResult CarList(){List<Models.CarModel> carList = new List<Models.CarModel>(){new Models.CarModel { Id = 1, Label = "Volkswagen", Type = "Arteon", Color = "Blue", cc = 2.0},new Models.CarModel { Id = 2, Label = "TOYOTA", Type = "Yaris", Color = "Red", cc = 1.5},new Models.CarModel { Id = 3, Label = "Honda", Type = "CRV", Color = "White", cc = 2.0}};return View(carList);}
三、利用Scaffolding為Model建立View檢視
四、把剛剛建立的View檢視新增到選單
<li class="nav-item"><a class="nav-link text-dark" asp-area="" asp-controller="Car" asp-action="CarList">CarList</a></li>
結果畫面:
透過Scaffolding建立資料模型的View清單是不是感覺有模有樣,但是若去點選Edit/Details/Delete的功能會發現到畫面會掛掉…,那…你想為什麼呢?(思考一分鐘)…原因是根本沒有建立Action和View,所以當你點擊後URL有動作,但是對應不到畫面,這也是後面會再接著談到這部份如何完善。
而且這還沒串接到資料庫,資料還是用寫死的方式傳遞,只是這樣一個操作過程開發人員多少就會很有感覺,一步一步漸入佳境,下一篇我們就會來說明如何同步資料庫裡的資料及畫面CRUD的功能,謝謝!