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");
}
}
最新文章
- POJ2406Power Strings[KMP 失配函数]
- Java 第二次作业
- JavaScript的学习2
- oracle 返回第一个不为空的列的值
- extJS 创建类
- 15 Linux Split and Join Command Examples to Manage Large Files--reference
- VFL语言
- mbos之动态图表设计
- Django在form提交CSRF验证失败. 相应中断问题
- 利用xpath爬取招聘网的招聘信息
- stream to byte[], byte[] to srting
- springboot中使用mybatis显示执行sql
- Jmeter put 方法总结
- 【MySQL学习杂记】 2017年7月13日
- SCRIPT7002: XMLHttpRequest: 网络错误 0x2efe, 由于出现错误 00002efe 而导致此项操作无法完成
- 《编写高质量代码:改善JavaScript程序的188个建议》学习小记(二)
- 用monit监控系统关键进程
- 2017-2018 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) B - Enlarging Enthusiasm dp好题
- 华硕主板M2N-电源跳线怎么接
- Python 字符串与基本语句
热门文章
- Debian(Linux)系统目录简单说明
- 【随手记-有空整理】使用PHPMailer和QQ邮箱实现邮件的自动发送
- linux下面安装软件学习流程
- Python3 将configparser从ini文件中读取的内容转换成字典格式
- jquery 动态增加的html元素,初始化设置在id或class上的事件无效
- 块元素block,内联元素inline; inline-block;
- python 爬一下
- 转:STL使用入门( Using STL)
- cocos2dx进阶学习之CCTMXLayer
- UINavigationController具体解释(二)