实现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的积累来获取这些特性,这些特性包括:

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

2、Action 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");
   }
}

Controller@实现Controller的两种形式的更多相关文章

  1. C++:一般情况下,设计函数的形参只需要两种形式

    C++:一般情况下,设计函数的形参只需要两种形式.一,是引用形参,例如 void function (int &p_para):二,是常量引用形参,例如 void function(const ...

  2. jquery插件的两种形式

    这里总结一下jquery插件的两种形式,一种是通过字面量的形式组织代码,另一种是通过构造函数的方式.下面就两种形式来分析俩个例子. 例子1: ;(function ($,window,document ...

  3. SQL 关于apply的两种形式cross apply 和 outer apply(转)

    转载链接:http://www.cnblogs.com/shuangnet/archive/2013/04/02/2995798.html apply有两种形式: cross apply 和 oute ...

  4. SQL 关于apply的两种形式cross apply 和 outer apply

    SQL 关于apply的两种形式cross apply 和 outer apply 例子: CREATE TABLE [dbo].[Customers]( ) COLLATE Chinese_PRC_ ...

  5. SQL关于apply的两种形式cross apply和outer apply(转载)

    SQL 关于apply的两种形式cross apply 和 outer apply   apply有两种形式: cross apply 和 outer apply   先看看语法:   <lef ...

  6. 在 Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的字符串, perl管它叫string. 也就是说: Perl只熟悉两种编

    在 Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的字符串, perl管它叫string. 也就是说: Perl只熟悉两种编 ...

  7. 在sql中case子句的两种形式

    case子句,在select后面可以进行逻辑判断. 两种形式:判断相等.判断不等 一.判断相等的语法: case 列名 when ...  then ... when ...  then ... el ...

  8. 转:SQL 关于apply的两种形式cross apply 和 outer apply

    原文地址:http://www.cnblogs.com/Leo_wl/archive/2013/04/02/2997012.html SQL 关于apply的两种形式cross apply 和 out ...

  9. SQL 关于apply的两种形式cross apply 和 outer apply, with cube 、with rollup 和 grouping

    1). apply有两种形式: cross apply 和 outer apply先看看语法: <left_table_expression> {cross|outer} apply &l ...

随机推荐

  1. 补全aaz288 可能有问题的过程 P_COMPL_AAZ288

    补全aaz288 可能有问题的过程: /* add by weiyongle 20160623 失地农民补足aaz288,针对早期导出的数据(只适用于江安县) 经测试:江安县 江安县个体劳动者 这个单 ...

  2. linux下的压缩解压命令 tar 的简单描述

    命令名称:tar 命令所在路径:/bin/tar 语法:tar选项·「-zcf」·「压缩后文件名」「目录」 -c 打包 -v 显示详细信息 -f 指定文件名 -z 打包同时压缩 tar命令解压缩语法: ...

  3. 数据结构——栈(Stacks)

    栈遵循LIFO ( last in first out) 即后入先出原则 栈结构类似于叠盘子 后叠上去的要先拿走 才能拿到下面的盘子 因此stack是一种访问受限的线性存储结构 用单向链表的结构来存储 ...

  4. UVA 10057 A mid-summer night's dream. 仲夏夜之梦 求中位数

    题意:求中位数,以及能成为中位数的数的个数,以及选择不同中位数中间的可能性. 也就是说当数组个数为奇数时,中位数就只有一个,中间那个以及中位数相等的数都能成为中位数,选择的中位数就只有一种可能:如果为 ...

  5. sharepoint 2013 附件控件FileUpload怎样检验是否为图片的方法

    记录一下关于附件控件FileUpload怎样检验是否为图片的方法: function checkImg() { var fileObj =document.getElementById('<%= ...

  6. Wiki: HSL和HSV色彩空间

    HSL 和 HSV(也叫做 HSB)是对RGB 色彩空间中点的两种有关系的表示,它们尝试描述比 RGB 更准确的感知颜色联系,并仍保持在计算上简单.HSL 表示 hue(色相).saturation( ...

  7. Qt程式异常崩溃处理技巧(Win)

    这篇文章谈的是 Qt4 程式在视窗系统下的异常崩溃处理技巧.所以须要在头文件里包括"#include <Windows.h>". 首先,程式难免会有异常崩溃的时候.重要 ...

  8. [Swust OJ 217]--Factor(数论,类素数表)

    题目链接:http://acm.swust.edu.cn/problem/0217/ Time limit(ms): 2000 Memory limit(kb): 65535    Descripti ...

  9. ViewPager,使用Fragment实现

    效果如图: 使用Fragment实现tab的缺点就是不能够滑动.不过应该也算优点,具体场景可以自由选择. 完整代码:imooc-tab022fragment,在我的百度云网盘上. MainAcgtiv ...

  10. ELK 之三:Kibana 使用与Tomcat、Nginx 日志格式处理

    一:kibana安装: kibana主要是搜索elasticsearch的数据,并进行数据可视化的展现,新版使用nodejs. 1.下载地址: https://www.elastic.co/downl ...