Controller@实现Controller的两种形式

实现Controller的两种形式

形式1:仅仅实现IController接口,自定义Controller对Request的实现。
形式2:在实现IController接口以后,继承Controller的一个基类,利用MVC Framework提供的一些特性实现Controller。

1、通过实现IController接口创建controller:                                                                

 public class BasicController:IController

    {

        public void Execute(RequestContextrequestContext)

        {

            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));

        }

    }

实现接口的意义是告诉MVC Framewrok我们创建的这个类型是一个controller,但是Framework并没有规定该怎样处理Request,因此要我们自定义实现处理请求的方式。

2、通过继承Controller 基类来创建controller:                 

在实现IController以后要进行自定义可能会很麻烦,微软给我们提供了一些现成的特性,我们可以在这些特性上进行拓展来实现我们想要的形式。我们可以通过继承Controller的积累来获取这些特性,这些特性包括:

1Action方法:一个Controller执行的动作会被分配到几个Action方法中,每个action方法都要通过不同的URL来请求,被请求的action会执行,他的参数来自请求中的参数。

2Action Result:你可以用一个对象来说明你的 action 执行的结果,这样的对象可以是:一个View跳转到另外一个URL,或者Acton方法。

3、过滤器:将会被从用的东西封装到一起。

    另外我们还要知道的是我们通过VS右键——Add——Controller得到的controller都是继承了Contrloller基类的,而这个也是最好的创建controller的方式。

 

示例代码:

public class DerivedController : Controller {
   public ActionResult Index() {
      ViewBag.Message = "Hello from the DerivedController Index method";
      return View("MyView");
   }
}

 






 

原文地址:https://www.cnblogs.com/key1309/p/3457206.html