概述
在MVC中,Controller用來處理和回應用戶的交互,選擇使用哪個View來進行顯 示,需要往視圖中傳遞什麼樣的視圖數據等。ASP.NET MVC Framework中提供了IController 接口和Controller基類兩種類型,其中在Controller提供了一些MVC中常用的處理,如定位 正確的action並執行、為action方法參數賦值、處理執行過程中的錯誤、提供默認的 WebFormViewFactory呈現頁面。IController只是提供了一個控制器的接口,如果用戶想自 定義一個控制器的話,可以實現IController,它的定義如下:
public interface IController
{
void Execute(ControllerContext controllerContext);
}
定義控制器和action
在前面三篇的例子中,我們已 經定義過了控制器,只要繼承於Controller就可以了:
public class BlogController : Controller
{
[ControllerAction]
public void Index()
{
BlogRepository repository = new BlogRepository();
List<Post> posts = repository.GetAll();
RenderView("Index", posts);
}
[ControllerAction]
public void New()
{
RenderView("New");
}
}通過ControllerAction特性來指 定一個方法為action,ControllerAction的定義非常簡單:
[AttributeUsage (AttributeTargets.Method)]
public sealed class ControllerActionAttribute : Attribute
{
public ControllerActionAttribute();
}