[MSDN]ASP.NET MVC2(7)Controller入门
说明:本内容来自微软的webcast,讲师为苏鹏。视频没有书方便(想看哪页就看哪页),所以抄录要点和老师语录。
内容介绍
- Controller类的基本构成
- ACTIONRESULT类的使用
预备知识
- 安装VS2010
- 了解ASP.NET
- 了解设计模式基本概念
关于Controller
- Controller 是什么?
响应用户的输入,去model层去拿到数据,把数据拿出来返回给用户。
Controller的历史
- Controller的变迁
定义一个Controller
- 使用Icontroller接口
RequestContext:请求上下文
直接输出内容的话,建议直接继承IhttpHander
上面requestContext除了包含http上下文对象——HttpContext,还有其他对象。
Controller的基础类实现
继承自Icontroller接口就可以
一个controller最重要的一点是让routeing 可以找到自己。并且知道自己可以处理那些事。
ControllerBase是一个抽象类的接口。比较好的基础继承类。
Controller类和Action类
- system.web.mvc.controller类
- Action方法
首先继承自system.web.mvc.controller类,然后有一些Aciton方法。
Action方法
所有controller方法,都认为是一个Action方法。这个方法他会响应http的一些信息并且对每一个请求做一个特定的匹配。必须是public否则无法调用。
使用多个参数
Action中有多个参数
默认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。
EmptyResult
没有任何匹配和执行
这种模式和函数返回null是一样的。
在某时候是有意义的,不可或缺。
ContentResult
- 输出纯文本
是使用httpResponse直接输出标记为textarea标记的内容。输出后也可以编码,也可以cultureinfo去指定。
一般用于纯文本输出,轻量级文本输出时使用。
常用于ajax调用,view样式多复杂相对慢,ajax需要的数据单纯。
FileResult
- FilePahtResult
- FileContentResut
- FileStreamResult
输出http文件
路径,文本,二进制流
JsonResult
把结果值拆分成json字符串方式返回。
JavascriptResul
特点:把一段js脚本放在客户端。生成一段脚本,希望马上执行。
RedirectResult
自动跳转
跳转到指定的页面
url跳转方式
RedirectToRouteResult
- RedirectToRoute
- ReditectToActio
跳转到Route,Acton
MVC中URL的本质就是Route,Action
ViewResult和PartiaoViewResult
使用字典类返回结果
使用View方式来生成对应的结果。生成两个字典类,有关键字,有值。
Action Result Helper函数
帮助生成结果的
隐式调用Action Results
Content方式格式化结果
直接将double当作文本原样输出。
如何将double输出?
总结
- controller类的基本构成
- ActionResult 的使用
附:
标题:粗体+斜体+黑色
ppt文字:宋体+黑色
作者语录:斜体+黑色/红色/蓝色
我的心得:@开头