Controller 是 MVC 處理業務邏輯、協調 Model 與 View 的核心。ASP.NET MVC Preview 5 將原 Controller 拆為 ControllerBase 與 Controller 兩層。
ControllerBase : IController
└── Controller : ControllerBase, IActionFilter, IAuthorizationFilter, IDisposable, IExceptionFilter, IResultFilter
IController.Execute(RequestContext):路由匹配後進入點。ExecuteCore():由 Execute 最後呼叫,子類別實作具體流程。ViewData, TempData, ViewEngine。View(), RedirectToAction(), Json(), File(), Content() 等,回傳各種 ActionResult。public class AdminController : Controller
{
public ActionResult Setting()
{
throw new NotImplementedException();
}
}
public 方法視為 Action(可用 [NonAction] 排除)。ActionResult(或衍生類別:ViewResult, RedirectResult, JsonResult...)。理解 ControllerBase/Controller 分層設計、Filter 介面實作與 ActionResult 多型回傳,能更深入掌握 MVC 請求處理管線與擴充點。