MVC:請求先到達 Controller,Controller 從 Model 取得資料,選擇 View 呈現結果。
MVP:請求先到達 View,View 轉交 Presenter,Presenter 從 Model 取得資料後透過介面更新 View。
ASP.NET MVC 的 View 繼承 ViewPage、ViewUserControl、ViewMasterPage,使用內嵌程式碼 (<%= %>) 或 HTML Helper 產生標籤。MVP 的 View 通常為傳統 WebForm,透過介面與 Presenter 解耦。
<%=Html.ActionLink("Home", "Index")%> |
<% foreach (Post post in ViewData) { %>
<div class="postitem"><%=Html.Encode(post.Title)%></div>
<% } %>
MVC 強調約定優於配置,URL Routing 直接對應 Controller/Action;MVP 則較依賴事件驅動與 View 介面契約。