[MSDN]ASP.NET MVC2(7)Controller入门

说明:本内容来自微软的webcast,讲师为苏鹏。视频没有书方便(想看哪页就看哪页),所以抄录要点和老师语录。

内容介绍

-          Controller类的基本构成

-          ACTIONRESULT类的使用

预备知识

-          安装VS2010

-          了解ASP.NET

-          了解设计模式基本概念

关于Controller

-          Controller 是什么?

响应用户的输入,去model层去拿到数据,把数据拿出来返回给用户。

Controller的历史

-          Controller的变迁

定义一个Controller

-          使用Icontroller接口

clip_image002

RequestContext:请求上下文

直接输出内容的话,建议直接继承IhttpHander

上面requestContext除了包含http上下文对象——HttpContext,还有其他对象。

Controller的基础类实现

继承自Icontroller接口就可以

一个controller最重要的一点是让routeing 可以找到自己。并且知道自己可以处理那些事。

ControllerBase是一个抽象类的接口。比较好的基础继承类。

Controller类和Action

-          system.web.mvc.controller

-          Action方法

首先继承自system.web.mvc.controller类,然后有一些Aciton方法。

Action方法

clip_image004

所有controller方法,都认为是一个Action方法。这个方法他会响应http的一些信息并且对每一个请求做一个特定的匹配。必须是public否则无法调用。

使用多个参数

Action中有多个参数

clip_image006

默认url

用户忘记输入参数时,我们可以参数加一个默认值。

不再route里加的话,可以在ActionResult里加。

Public ActionResult DinnersNearMe(string location,int maxDinners=10){}

int maxDinners=10,是默认值,4.0才有的特性。可参考vs2010新特性。

ActionResult

Public abstract class ActionResult

{

Public abstract void ExecuteResult(ControllerContext context);

}

MVC中,Action是响应用户请求的最小单元。

ExecuteResult(ControllerContext context)命令模式,在客户端渲染内容。

ActionResult的重载

除了可以返回View,还可以返回各种Result

clip_image008

EmptyResult

没有任何匹配和执行

这种模式和函数返回null是一样的。

在某时候是有意义的,不可或缺。

ContentResult

-          输出纯文本

是使用httpResponse直接输出标记为textarea标记的内容。输出后也可以编码,也可以cultureinfo去指定。

一般用于纯文本输出,轻量级文本输出时使用。

常用于ajax调用,view样式多复杂相对慢,ajax需要的数据单纯。

FileResult

-          FilePahtResult

-          FileContentResut

-          FileStreamResult

输出http文件

路径,文本,二进制流

JsonResult

clip_image010

把结果值拆分成json字符串方式返回。

JavascriptResul

clip_image012

特点:把一段js脚本放在客户端。生成一段脚本,希望马上执行。

RedirectResult

自动跳转

跳转到指定的页面

url跳转方式

RedirectToRouteResult

-          RedirectToRoute

-          ReditectToActio

跳转到RouteActon

MVCURL的本质就是RouteAction

ViewResultPartiaoViewResult

使用字典类返回结果

使用View方式来生成对应的结果。生成两个字典类,有关键字,有值。

Action Result Helper函数

帮助生成结果的

clip_image014

隐式调用Action Results

Content方式格式化结果

直接将double当作文本原样输出。

如何将double输出?

clip_image016

总结

-          controller类的基本构成

-          ActionResult 的使用

附:
标题:粗体+斜体+黑色
ppt文字:宋体+黑色
作者语录:斜体+黑色/红色/蓝色
我的心得:@开头

原文地址:https://www.cnblogs.com/htht66/p/2330506.html