視圖不會自動更新。 Scaffold(腳手架)生成的 Create/Edit/Details/Delete/Index 視圖屬於**一次性生成的程式碼**,而非與模型綁定的即時模板。
@* Create.cshtml *@
<div class="form-group">
@Html.LabelFor(m => m.Birthday, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(m => m.Birthday, new { htmlAttributes = new { @class = "form-control", type = "date" } })
@Html.ValidationMessageFor(m => m.Birthday, "", new { @class = "text-danger" })
</div>
</div>
| 框架 | 視圖與模型關係 | 更新方式 |
|---|---|---|
| ASP.NET MVC 4/5 (Scaffold) | 一次性生成,獨立檔案 | 手動修改 |
| ASP.NET Core MVC (Tag Helpers) | 同樣一次性生成 | 手動修改,但 Tag Helper 減少樣板碼 |
| Razor Pages | PageModel 與 .cshtml 緊耦合 | 修改 PageModel 屬性,視圖 IntelliSense 即時提示 |
| Blazor | 元件化,模型即 C# 類別 | 重新編譯即同步,無視圖檔案分離問題 |
Scaffold 視圖**不會**隨模型自動更新,這是為了保護前端客製化成果。開發者應將「模型變更 → 遷移資料庫 → 手動同步視圖」納入標準開發流程,或改用 Razor Pages/Blazor 等更現代的框架以獲得更緊密的模型-視圖同步體驗。