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的积累来获取这些特性,这些特性包括:
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的两种形式的更多相关文章
- C++:一般情况下,设计函数的形参只需要两种形式
C++:一般情况下,设计函数的形参只需要两种形式.一,是引用形参,例如 void function (int &p_para):二,是常量引用形参,例如 void function(const ...
- jquery插件的两种形式
这里总结一下jquery插件的两种形式,一种是通过字面量的形式组织代码,另一种是通过构造函数的方式.下面就两种形式来分析俩个例子. 例子1: ;(function ($,window,document ...
- SQL 关于apply的两种形式cross apply 和 outer apply(转)
转载链接:http://www.cnblogs.com/shuangnet/archive/2013/04/02/2995798.html apply有两种形式: cross apply 和 oute ...
- SQL 关于apply的两种形式cross apply 和 outer apply
SQL 关于apply的两种形式cross apply 和 outer apply 例子: CREATE TABLE [dbo].[Customers]( ) COLLATE Chinese_PRC_ ...
- SQL关于apply的两种形式cross apply和outer apply(转载)
SQL 关于apply的两种形式cross apply 和 outer apply apply有两种形式: cross apply 和 outer apply 先看看语法: <lef ...
- 在 Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的字符串, perl管它叫string. 也就是说: Perl只熟悉两种编
在 Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的字符串, perl管它叫string. 也就是说: Perl只熟悉两种编 ...
- 在sql中case子句的两种形式
case子句,在select后面可以进行逻辑判断. 两种形式:判断相等.判断不等 一.判断相等的语法: case 列名 when ... then ... when ... then ... el ...
- 转:SQL 关于apply的两种形式cross apply 和 outer apply
原文地址:http://www.cnblogs.com/Leo_wl/archive/2013/04/02/2997012.html SQL 关于apply的两种形式cross apply 和 out ...
- SQL 关于apply的两种形式cross apply 和 outer apply, with cube 、with rollup 和 grouping
1). apply有两种形式: cross apply 和 outer apply先看看语法: <left_table_expression> {cross|outer} apply &l ...
随机推荐
- HTML5 总结-表单-表单元素
HTML5 表单元素 HTML5 的新的表单元素: HTML5 拥有若干涉及表单的元素和属性. 本章介绍以下新的表单元素: datalist keygen output 浏览器支持 Input typ ...
- Ruby学习: 全局变量 和常量
一.全局变量 ruby中支持全局变量,ruby中的全局变量有如下几个特点: 1)标识符以$开头标记 2)全局变量可以在程序的任何地方加以引用 3)全局变量无需提前进行变量声明.引用尚未初始化的全局变量 ...
- (step8.2.4)hdu 1846(Brave Game——巴什博奕)
题目大意:输入一个整数t,表示测试用例是.接着输入2个整数n,m.分别表示这堆石头中石头的个数,和每次所能取得最大的石头数.判断那一方为赢家 解题思路: 1)这是一道简单的巴什博弈: 所谓巴什博弈,是 ...
- cocos2dx进阶学习之CCSprite
继承关系 CCSprite -> CCNodeRGBA -> CCNode, CCRGBAProtocol CCTextureProtocol 从继承关系可以看出,CCSp ...
- Android -- BroadCastReceiver的简单使用
//首先新建一个继承自BroadcastReceiver的广播监听类 class StartActiviryReceiver extends BroadcastReceiver { public fi ...
- 一次搞定cocos2d-x的 Android.mk 文件
cocos2d-x 打 android 包时要修改 Android.mk 文件,但每次修改很麻烦,如果源文件很多的话就坑死了,也可以写一个脚本来自动生成这个文件,但每次还要重新生成一下,将其修改下面的 ...
- 在storyboard中设置控件的layerbordercolor
在SB中控件可以在SB中直接利用kvc 设置一些属性值,不如layerwidth等 但是不能更改和颜色有关的属性因为layerbordercolor是CGColor.通过为CALayer增加属性可以实 ...
- linux修改shell为zsh
以前使用的bash,如果目录很长,那么整个路径都被占满了. 询问一下一位大牛,答曰:zsh. 安装:ubuntu下sudo apt-get install zsh 修改默认登录shell: $chsh ...
- System.IO
I/O 1.文件操作:File (1)void AppendAllText(string path, string contents) (2)bool Exist ...
- Week8(10月28日)
Part I:提问 =========================== 1. Lazy.Eager.Explicit Loading的关键字是什么? 2. 请比较三种加载方式的性能. Part ...