首页 > 代码库 > 控制器介绍
控制器介绍
新建立MVC3项目,名为12-1ControllersAndActions,使用空模板。
Global.asax中默认的路由定义为:
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults ); }
1、用IController创建控制器
在MVC框架中,控制器类必须实现System.Web.Mvc命名空间的IController接口。
System.Web.Mvc.IController接口如下所示:
public interface IController { void Execute(RequestContext requestContext); }
接口只有一个方法Execute,在请求目标控制器时将被调用。
通过实现IController,就可以创建控制器类,但这是一个相当低级的接口,要做大量工作才能让自己创建的控制器有效,下面只是一个简单的演示。
鼠标右击项目中的Controllers文件夹,选择 Add -> Class,创建新类,取名为BasicController,代码如下:
namespace _12_1ControllersAndActions.Controllers { public class BasicController:IController { public void Execute(RequestContext requestContext) { string controller = (string)requestContext.RouteData.Values["controller"]; string action = (string)requestContext.RouteData.Values["action"]; requestContext.HttpContext.Response.Write( string.Format("Controller:{0}, Action:{1}", controller, action)); } } }
如果运行程序,导航到"~/Basic/Index",根据路由定义,也可以导航到"~/Basic",产生的结果为:
Controller:Basic,Action:Index
2、一般的做法是创建派生于Controller类的控制器
鼠标右击项目中的Controllers文件夹,选择 Add -> Controller,新建控制器,命名为DerivedController,代码如下:
namespace _12_1ControllersAndActions.Controllers { public class DerivedController : Controller { // // GET: /Derived/ public ActionResult Index() { ViewBag.Message = "Hello from the DerivedController Index method."; return View("MyView"); } } }
在方法Index上鼠标右键,添加视图,视图取名为MyView
/Views/Derived/MyView.cshtml
@{ ViewBag.Title = "MyView"; } <h2>MyView</h2> <h1>Message: @ViewBag.Message</h1>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。