| WebForms | MVC 替代 | 收益 |
|---|---|---|
| 伺服器端表單控制項 (asp:TextBox, GridView...) | 原生 HTML 控制項 + HtmlHelper | 完全掌控 HTML、前後端分離、易於 CSS/JS 整合 |
| 事件驅動模型 (btn_Click) | Action 方法 + HTTP 動詞 | 符合 Web 本質、可測試、RESTful |
| ViewState / PostBack | 無狀態、Model Binding | 頻寬節省、無頁面生命週期陷阱 |
| 代碼置於 .aspx.cs | Controller / Service / Repository | 關注點分離、可單元測試、依賴注入 |
拋棄用了多年的伺服器控制項、事件模型是痛苦的,但剩下的蛻變出來的新事物更優秀。馬克思主義哲學:「道路是曲折的,前途是光明的」——Web 應用模型演進正是此觀點的最佳註腳。
完整 Demo 專案(含 7 篇所有功能):點此下載(原文連結已失效,建議參考 GitHub 同類教學專案)。
學習 MVC 不在於記住 API,而在於理解**為什麼要這樣分離**、以及**如何在專案中落地關注點分離**。願這系列文章能幫助你跨越從 WebForms 到 MVC 的認知鴻溝。