控制器介绍

新建立MVC3项目,名为12-1ControllersAndActions,使用空模板。

Global.asax中默认的路由定义为:


        public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

}

1、用IController创建控制器

在MVC框架中,控制器类必须实现System.Web.Mvc命名空间的IController接口。

System.Web.Mvc.IController接口如下所示:

public interface IController
{
void Execute(RequestContext requestContext);
}

接口只有一个方法Execute,在请求目标控制器时将被调用。

通过实现IController,就可以创建控制器类,但这是一个相当低级的接口,要做大量工作才能让自己创建的控制器有效,下面只是一个简单的演示。

鼠标右击项目中的Controllers文件夹,选择 Add -> Class,创建新类,取名为BasicController,代码如下:


namespace _12_1ControllersAndActions.Controllers
{
public class BasicController:IController
{
public void Execute(RequestContext requestContext)
{
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));
}
}
}

如果运行程序,导航到"~/Basic/Index",根据路由定义,也可以导航到"~/Basic",产生的结果为:

Controller:Basic,Action:Index

2、一般的做法是创建派生于Controller类的控制器

鼠标右击项目中的Controllers文件夹,选择 Add ->
Controller,新建控制器,命名为DerivedController,代码如下:


namespace _12_1ControllersAndActions.Controllers
{
public class DerivedController : Controller
{
//
// GET: /Derived/

public ActionResult Index()
{
ViewBag.Message = "Hello from the DerivedController Index method.";
return View("MyView");
}

}
}

在方法Index上鼠标右键,添加视图,视图取名为MyView

/Views/Derived/MyView.cshtml

@{
ViewBag.Title = "MyView";
}

<h2>MyView</h2>
<h1>Message: @ViewBag.Message</h1>

控制器介绍,布布扣,bubuko.com

时间: 2024-10-11 04:57:12

控制器介绍的相关文章

beego控制器介绍

控制器介绍 提示:在 v1.6 中,此文档所涉及的 API 有重大变更,this.ServeJson() 更改为 this.ServeJSON(),this.TplNames 更改为 this.TplName. 基于 beego 的 Controller 设计,只需要匿名组合 beego.Controller 就可以了,如下所示: type xxxController struct { beego.Controller } beego.Controller 实现了接口 beego.Control

5、jmeter-逻辑控制器介绍与使用

逻辑控制器介绍与使用 如果(if)控制器 事物控制器 循环控制器 while controller critical section controller foreach控制器 include controller 交替控制器 仅一次控制器 随机控制器 随机顺序控制器 录制控制器 runtime controller 简单控制器 吞吐量控制器 模块控制器 switch controller 1.如果(if)控制器 支持JavaScript.Variable.expression,我常用的是Var

痞子衡嵌入式:飞思卡尔i.MX RT系列微控制器介绍篇(3)- 命名规则

大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的命名规则. 打开任何一款i.MX RT系列芯片的Data Sheet均可找到如下命名规则表,以i.MXRT105x芯片的Data Sheet为例: 一款芯片名字共有以上10部分组成,RT系列芯片家族目前成员不多,上表仅适用于i.MXRT105x.i.MXRT102x.从芯片名字上我们主要可以得到五种有效信息,分别是所属子系列.温度范围.封装.最大运行频率等级.Tapeout版本. 不过从芯片名字上能

ABP官方文档翻译 5.1 Web API控制器

ASP.NET Web API控制器 介绍 AbpApiController基类 本地化 其他 过滤器 审计日志 授权 反伪造过滤器 工作单元 结果包装和异常处理 结果缓存 校验 模型绑定器 介绍 ABP通过Abp.Web.Api nuget包集成到ASP.NET Web API控制器.你可以按照往常一样创建ASP.NET Web API控制器.依赖注入系统可以用于一般的ApiControllers.但是,建议继承AbpApiController,它提供了许多好处并且能够更好的与ABP集成. A

【嵌入式Linux+ARM】存储控制器(操作SDRAM)

1.存储控制器介绍 s3c2440中的"存储管理器"提供了访问外部设备所需要的信号,有如下特性: 1.支持小字节序.大字节序(通过软件选择) 2.每个BANK为128M,一共有8个BANK,共1G 3.BANK0~BANK5可以支持外接ROM.SRAM等,BANK6~BANK7除可以支持ROM.SRAM外 还支持SDRAM 4.BANK0~BANK7的起始地址是固定的 5.外接SDRAM时,支持自刷新和省电模式 s3c2440上有ADDR0~ADDR26访问范围只有128M,如何达到上

Angularjs,WebAPI 搭建一个简易权限管理系统

Angularjs,WebAPI 搭建一个简易权限管理系统 Angularjs名词与概念(一) 1. 目录 前言 Angularjs名词与概念 权限系统原型 权限系统业务 数据库设计和实现 WebAPI项目主体结构 Angularjs前端主体结构 2. 前言 Angularjs开发CRUD类型的Web系统生产力惊人,与jQuery,YUI,kissy,Extjs等前端框架区别非常大,初学者在学习的过程中容易以自己以往的经验来学习Angularjs 往往走入误区,最典型的特征是在的开发过程中,使用

C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(上)

译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(上)),不对的地方欢迎指出与交流. 章节出自<Professional C# 6 and .NET Core 1.0>.水平有限,各位阅读时仔细分辨,唯望莫误人子弟. 附英文版原文:Professional C# 6 and .NET Core 1.0 - Chapter 41 ASP.NET MVC ------------------------------------ 本

使用jmeter进行性能测试-Jmeter教程及技巧汇总 (转)

为什么使用jmeter, 它免费开源, 不断发展, 功能逐渐强大. 可以做功能,负载, 性能测试.一套脚本可以同时用于功能和性能测试.Jmeter 有着众多的插件开发者, 支持多种的测试协议. 一 .Jmeter 使用入门教程(快速入门) 如果您熟悉英语, 可以选择阅读tutorialpoint的教程.  或浏览汉化中的[史上最完整Jmeter教程]. 您也可以继续浏览站长收集的如下资料.  1. Jmeter 快速入门教程(一)  什么是jmeter 及 google plugin介绍 (强大

AngularJS 特性

单页Web应用(SinglePage) 顾名思义,只使用一个页面的Web应用程序.单页面应用是指用户通过浏览器加载独立的HTML页面,Ajax加载数据页面无刷新,实现操作各种操作. 模板(template) 在AngularJS中,一个模板就是一个HTML文件.但是HTML的内容扩展了,包含了很多帮助你映射model到view的内容. »  HTML模板将会被浏览器解析到DOM中. »  DOM然后成为AngularJS编译器的输入. »  AngularJS将会遍历DOM模板来生成一些指导,即