從 WinForms 到 Web 之二:前後端分離架構
如果說 MVC 是「後端包辦一切」,那前後端分離就是「後端只管資料,前端只管畫面」;兩者最根本的差異在於渲染發生的位置: ── MVC ────────────────────────────────────────────── 瀏覽器 ──請求──▶ 後端(組好 HTML)──▶ 瀏覽器(顯示) ── 前後端分離 ──────────────────────────────────────── 瀏覽器 ──請求──▶ 後端(回傳 JSON)──▶ 瀏覽器(自行渲染) 後端不再負責產生 HTML,它只提供結構化的資料(通常是 JSON);畫面要長什麼樣子,完全是前端的責任。 用 ASP.NET Core Web API 來說明 後端:只負責資料,不碰畫面 1[ApiController] 2[Route("api/[controller]")] 3public class ProductsController : ControllerBase 4{ 5 private readonly AppDbContext _db; 6 public ProductsController(AppDbContext db) => _db = db; 7 8 [HttpGet] 9 public async Task<IActionResult> GetAll() 10 { 11 var products = await _db.Products.ToListAsync(); 12 return Ok(products); // 純 JSON,沒有 HTML 13 } 14 15 [HttpPost] 16 public async Task<IActionResult> Create(ProductDto dto) 17 { 18 // 驗證邏輯、商業規則... 19 var product = new Product { Name = dto.Name, Price = dto.Price }; 20 _db.Products.Add(product); 21 await _db.SaveChangesAsync(); 22 return CreatedAtAction(nameof(GetAll), new { id = product.Id }, product); 23 } 24} 後端回傳的是這樣的 JSON: ...