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

最新文章

  1. POJ2406Power Strings[KMP 失配函数]
  2. Java 第二次作业
  3. JavaScript的学习2
  4. oracle 返回第一个不为空的列的值
  5. extJS 创建类
  6. 15 Linux Split and Join Command Examples to Manage Large Files--reference
  7. VFL语言
  8. mbos之动态图表设计
  9. Django在form提交CSRF验证失败. 相应中断问题
  10. 利用xpath爬取招聘网的招聘信息
  11. stream to byte[], byte[] to srting
  12. springboot中使用mybatis显示执行sql
  13. Jmeter put 方法总结
  14. 【MySQL学习杂记】 2017年7月13日
  15. SCRIPT7002: XMLHttpRequest: 网络错误 0x2efe, 由于出现错误 00002efe 而导致此项操作无法完成
  16. 《编写高质量代码:改善JavaScript程序的188个建议》学习小记(二)
  17. 用monit监控系统关键进程
  18. 2017-2018 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) B - Enlarging Enthusiasm dp好题
  19. 华硕主板M2N-电源跳线怎么接
  20. Python 字符串与基本语句

热门文章

  1. Debian(Linux)系统目录简单说明
  2. 【随手记-有空整理】使用PHPMailer和QQ邮箱实现邮件的自动发送
  3. linux下面安装软件学习流程
  4. Python3 将configparser从ini文件中读取的内容转换成字典格式
  5. jquery 动态增加的html元素,初始化设置在id或class上的事件无效
  6. 块元素block,内联元素inline; inline-block;
  7. python 爬一下
  8. 转:STL使用入门( Using STL)
  9. cocos2dx进阶学习之CCTMXLayer
  10. UINavigationController具体解释(二)