zoukankan      html  css  js  c++  java
  • 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");
       }
    }

     






     

  • 相关阅读:
    Corn Fields 状压动归入门题
    codevs 2800 送外卖 floyd + Tsp
    互不侵犯 状压动归入门题
    跨终端电商平台的实现之手势效果(左右滑动)
    nodejs和树莓派开发以及点亮RGB的LED灯代码
    基于vue-cli搭了一个多页面应用的空脚手架
    About HTML
    【译】遗留浏览器中的表单
    Vue2的右键弹出菜单(vue-contextmenu)
    IMWEB 前端面试题汇总
  • 原文地址:https://www.cnblogs.com/key1309/p/3457206.html
Copyright © 2011-2022 走看看