主題:MVC 的 Model
情境:
成功建立View + Controller 後,這一章來說明Model用法,簡單來說Model。
重點:
1.理解Model 腳色定位。
2.建立第一個Model。
步驟:
step1.在Models資料夾 -> 右鍵 加入 類別 -> 輸入名稱 (我這邊是輸入Student) -> 新增Student.cs檔案 (檔名不一定要Model結尾)
step2. 設定欄位
Model 的設計概念是一個欄位,而這欄位的用意是接收 表單欄位、資料表欄位 資料。
下面寫的public string name ....等等 就是所謂的欄位。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
namespace CoreMvcExp.Models
{
public class Student
{
[Display(Name = "學號")]
[DisplayFormat(DataFormatString ="{0:0000}", ApplyFormatInEditMode =false)]
public int Id { get; set; }
[Display(Name = "姓名")]
public string Name { get; set; }
[Display(Name = "國文")]
public int Chinese { get; set; }
[Display(Name = "英文")]
public int English { get; set; }
[Display(Name = "數學")]
public int Math { get; set; }
[Display(Name = "總分")]
public int Total { get; set; }
}
}
step3.在HomeController 補上程式(藍色部分是新的)。
public class HomeController:Controller
{
protected List<Student> students = new List<Student>
{
new Student { Id =1, Name="Joe", Chinese=100, English=100, Math=100 },
new Student { Id =12, Name="Jack1", Chinese=92, English=82, Math=60 },
new Student { Id =23, Name="Cathy", Chinese=98, English=91, Math=94 },
new Student { Id =34, Name="Jack2", Chinese=60, English=85, Math=55 },
new Student { Id =45, Name="David", Chinese=59, English=70, Math=82 }
};
public IActionResult Index()
{
return View();
}
public async Task<IActionResult> Scores()
{
return await Task.Run(() => View(students));
}
}
step4. 並新增一個View -> 叫做Scores.cshtml -> 補上程式碼。
@model IEnumerable<CoreMvcExp.Models.Student>
@{
ViewData["Title"] = "Scores";
}
<h1>Scores</h1>
<p>
<a asp-action="Create">Create New</a>
</p>
<table class="table">
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.Id)
</th>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.Chinese)
</th>
<th>
@Html.DisplayNameFor(model => model.English)
</th>
<th>
@Html.DisplayNameFor(model => model.Math)
</th>
<th>
@Html.DisplayNameFor(model => model.Total)
</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Id)
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Chinese)
</td>
<td>
@Html.DisplayFor(modelItem => item.English)
</td>
<td>
@Html.DisplayFor(modelItem => item.Math)
</td>
<td>
@Html.DisplayFor(modelItem => item.Total)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
</td>
</tr>
}
</tbody>
</table>
step5. 執行起來~ 網址輸入 Home/Scores,如果能看到以下結果,就代表你成功囉。
恭喜你完成簡單的 MVC 範例囉。
下一章,會說明甚麼是HtmlHelper and TagHelper。
留言列表