• 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");
       }
    }

     






     

  • 相关阅读:
    spring @Primary-在spring中的使用(十九)
    Java中lombok @Builder注解使用详解(十八)
    Spring Boot的MyBatis注解:@MapperScan和@Mapper(十七)
    js基础只是总结-语句
    js基础知识-数据类型
    启动redis服务报错Creating Server TCP listening socket *:6379: bind: Address already in use [duplicate]
    gitlab 配置SSH和ACCESS TOKEN
    https nginx配置
    Vue和React区别
    深入虚拟DOM和DOM-diff
  • 原文地址:https://www.cnblogs.com/key1309/p/3457206.html
Copyright © 2020-2023  润新知