Asp.net MVC控制器負責控制應用程序的執(zhí)行流程。當你發(fā)出請求(指請求頁)在MVC應用程序中,控制器負責返回響應這一請求??刂破骺梢杂幸粋€或多個動作??刂破鞯膭幼骺梢苑祷夭煌愋偷牟僮鹘Y(jié)果到一個特定的請求。
控制器負責控制應用邏輯和充當視圖和模型之間的協(xié)調(diào)器。控制器通過視圖接收來自用戶的輸入,然后模型處理用戶的數(shù)據(jù)和傳遞結(jié)果返回給視圖。
要創(chuàng)建一個控制器,在MVC應用程序中創(chuàng)建一個空的MVC應用程序,然后右鍵單擊控制器(Controller)文件夾,然后選擇菜單選項Add->Controller。選擇之后顯示添加控制器對話框。命名為控制器DemoController。
控制器類文件將這樣創(chuàng)建:
在MVC框架,控制器類必須實現(xiàn)從System.Web.Mvc命名空間中的IController接口。
public interface IController { void Execute(RequestContext requestContext); }
這是一個非常簡單的接口。唯一的方法,執(zhí)行,在調(diào)用時的請求是針對控制器類。所述MVC框架知道哪個控制器類已被定位于一個請求,通過讀取路由數(shù)據(jù)生成控制器屬性的值。
添加一個新的類文件,并將其命名為DemoCustomController。現(xiàn)在修改這個類來繼承IController接口。
復制下面的代碼到這一個類中:
public class DemoCustomController:IController { public void Execute(System.Web.Routing.RequestContext requestContext) { var controller = (string)requestContext.RouteData.Values["controller"]; var action = (string)requestContext.RouteData.Values["action"]; requestContext.HttpContext.Response.Write( string.Format("Controller: {0}, Action: {1}", controller, action)); } }
現(xiàn)在,當運行應用程序,會看到這樣的結(jié)果: