ASP.NET MVC ActionResult的实现
1、11种ActionResult
在System.Web.Mvc命名空间下:
ActionResult是一个抽象类, 在Action中返回的都是其派生类.下面是我整理的ASP.NET MVC 1.0 版本中提供的ActionResult派生类:
| 类名 | 抽象类 | 父类 | 功能 |
| ContentResult | 根据内容的类型和编码,数据内容. | ||
| EmptyResult | 空方法. | ||
| FileResult | abstract | 写入文件内容,具体的写入方式在派生类中. | |
| FileContentResult | FileResult | 通过 文件byte[] 写入文件. | |
| FilePathResult | FileResult | 通过 文件路径 写入文件. | |
| FileStreamResult | FileResult | 通过 文件Stream 写入文件. | |
| HttpUnauthorizedResult | 抛出401错误 | ||
| JavaScriptResult | 返回javascript文件 | ||
| JsonResult | 返回Json格式的数据 | ||
| RedirectResult | 使用Response.Redirect重定向页面 | ||
| RedirectToRouteResult | 根据Route规则重定向页面 | ||
| ViewResultBase | abstract | 调用IView.Render() | |
| PartialViewResult | ViewResultBase | 调用父类ViewResultBase 的ExecuteResult方法. 重写了父类的FindView方法. 寻找用户控件.ascx文件 |
|
| ViewResult | ViewResultBase | 调用父类ViewResultBase 的ExecuteResult方法. 重写了父类的FindView方法. 寻找页面.aspx文件 |
2、代码
1 public class ActionResultController : Controller
2 {
3 public ActionResult Index()
4 {
5 return View();
6 }
7 public ActionResult ContentResult()
8 {
9 return Content("Hi, 我是ContentResult结果");
10 }
11 public ActionResult EmptyResult()
12 {
13 //空结果当然是空白了!
14 //至于你信不信, 我反正信了
15 return new EmptyResult();
16 }
17 public ActionResult FileResult()
18 {
19 var imgPath = Server.MapPath("~/demo.jpg");
20 return File(imgPath, "application/x-jpg", "demo.jpg");
21 }
22 public ActionResult HttpNotFoundResult()
23 {
24 return HttpNotFound("Page Not Found");
25 }
26 public ActionResult HttpUnauthorizedResult()
27 {
28 //未验证时,跳转到Logon
29 return new HttpUnauthorizedResult();
30 }
31 public ActionResult JavaScriptResult()
32 {
33 string js = "alert(\"Hi, I'm JavaScript.\");";
34 return JavaScript(js);
35 }
36 public ActionResult JsonResult()
37 {
38 var jsonObj = new
39 {
40 Id = 1,
41 Name = "小铭",
42 Sex = "男",
43 Like = "足球"
44 };
45 return Json(jsonObj, JsonRequestBehavior.AllowGet);
46 }
47 public ActionResult RedirectResult()
48 {
49 return Redirect("~/demo.jpg");
50 }
51 public ActionResult RedirectToRouteResult()
52 {
53 return RedirectToRoute(new {
54 controller = "Hello", action = ""
55 });
56 }
57 public ActionResult ViewResult()
58 {
59 return View();
60 }
61 public ActionResult PartialViewResult()
62 {
63 return PartialView();
64 }
65 //禁止直接访问的ChildAction
66 [ChildActionOnly]
67 public ActionResult ChildAction()
68 {
69 return PartialView();
70 }
71 //正确使用ChildAction
72 public ActionResult UsingChildAction()
73 {
74 return View();
75 }
76 }
ASP.NET MVC ActionResult的实现的更多相关文章
- asp.net mvc ActionResult
定义在Controller中的Action方法大都返回一个ActionResult对象.ActionResult是对Action执行结果的封装,用于最终对请求进行响应.ASP.NET MVC提供了一系 ...
- ASP.NET MVC ActionResult的其它返回值
一.ascx页面 场景:要返回代码片断,比如Ajax返回一个子页 我们先新建一个Action public ActionResult Ascx() { return PartialView(); } ...
- 列举mvc ActionResult的返回值
8.列举ASP.NET MVC ActionResult的返回值有几种类型? 主要有View(视图).PartialView(部分视图).Content(内容).Json(Json字符串).Javas ...
- 【转】ASP.NET MVC学习笔记-Controller的ActionResult
1. 返回ViewResult public ActionResult Index() { ViewData["Message"] = "Welcome ...
- 了解ASP.NET MVC几种ActionResult的本质:JavaScriptResult & JsonResult
在之前的两篇文章(<EmptyResult & ContentResult>和<FileResult>)我们剖析了EmptyResult.ContentResult和F ...
- Asp.net MVC 中Controller返回值类型ActionResult
[Asp.net MVC中Controller返回值类型] 在mvc中所有的controller类都必须使用"Controller"后缀来命名并且对Action也有一定的要求: 必 ...
- 了解ASP.NET MVC几种ActionResult的本质:HttpStatusCodeResult & RedirectResult/RedirectToRouteResult
在本系列的最后一篇,我们来讨论最后三个ActionResult:HttpStatusCodeResult.RedirectResult和RedirectToRouteResult .第一个用于实现针对 ...
- [转载]深入理解ASP.NET MVC之ActionResult
Action全局观 在上一篇最后,我们进行到了Action调用的“门口”: 1 if (!ActionInvoker.InvokeAction(ControllerContext, actionNam ...
- Asp.net MVC 之 ActionResult
Action运行完后,回传的值通过ActionResult 类别或者其衍生的类别操作.ActionResult是一个抽象类,因此,Asp.net MVC 本身就实作了许多不同类型的ActionResu ...
随机推荐
- 1069: [SCOI2007]最大土地面积 - BZOJ
Description 在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成的多边形面积最大.Input 第1行一个正整数N,接下来N行,每行2个数x,y, ...
- Hadoop以及其外围生态系统的安装参考
在研究Hadoop的过程中使用到的参考文档: 1.Hadoop2.2 参考文档 在CentOS上安装Hadoop 2.x 集群: http://cn.soulmachine.me/blog/201 ...
- SVN--从本地检出项目至服务器报错--禁止访问
错误描述: 原因:这是访问权限限制引起的. 查看/svn/test目录的权限--之前我修改过的 现在添加一个user就好了--这个添加的developer是我之前导入本地项目时已经验证过的,所以再导入 ...
- cf 359C
stl 里的map使用 然后就是快速幂取余 #include <cstdio> #include <cstring> #include <algorithm> ...
- Java学习第一篇:变量,数据类型,运算符,流程控制(简介)
一.安装和配置jdk 1.jdk是什么? (1).jdk全称是Java Development Kit, Java开发工具包; (2).jdk是sun公司开发的; (3).jdk主要包括:jre(Ja ...
- java基础知识回顾之javaIO类--File类
File类是对文件系统中文件以及目录(文件夹)进行封装的对象,可以通过面向对象的思想来操作文件和目录(文件夹).File类保存文件或目录的各种元素的信息,包括文件名,文件长度,最后修改日期,是否可读, ...
- ASP.NET 免费开源控件
AspNetPager分页控件(当前版本:7.5.1) AspNetPager分页控件是应用于ASP.NET WebForm网站或应用程序中的自定义分页控件,支持默认的回发(Postback)分页和U ...
- mac 安装mysql 报错“ERROR 2002 (HY000): Can not connect to local MySQL server through socket '/tmp/mysql.sock' (2)” 解决办法
首先安装 homebrew 再 brew install mysql 之后连接 mysql 无论是登录还是修改初始密码都会报如下的错误 ERROR 2002 (HY000): Can not conn ...
- 如何在linux系统下对文件夹名有空格的文件夹进行操作
http://www.2cto.com/os/201409/335119.html 在Windows操作系统中可以轻易地创建\移动\删除文件夹名带有空格的文件夹, 而在linux则需要进行一些特殊的处 ...
- My_Plan part1 小结
数位DP AC十道题目以上 成就达成 八月份!三个月!想想就令人兴奋呢 开始写总结啦 貌似简单的数位DP只需要改改模板就可以啦 就按照我的做题顺序开始总结吧 先是学习了一发模板:http://www. ...