通常我们在一个ASP.NET MVC项目中创建一个Controller的时候,Index()方法默认的返回类型都是ActionResult,通过查看UML图,ActionResult实际上是一个抽象类,因此实际返回的类型是该抽象类的子类。

Ø ActionResult及其子类的UML图

 

有关ActionResult及其子类的UML图如下所示:

由于图片比较大,所以在浏览器中看起来可能比较小,也不太方便,大家可以点击这里下载大图,使用专业的图片浏览器打开来看。

下载大图

Ø ActionResult及其子类的对照表

ActionResult的子类名称

说明

ViewResult

表示HTML的页面内容

EmptyResult

表示空白的页面内容

RedirectResult

表示定位到另外一个URL

JsonResult

表示可以运用到AJAX程序中JSON结果

JavaScriptResult

表示一个JavaScript对象

ContentResult

表示一个文本内容

FileContentResult

表示一个可以下载的、二进制内容的文件

FilePathResult

表示一个可以下载的、指定路径的文件

FileStreamResult

表示一个可以下载的、流式的文件

通过我们在代码中编写,不难看到如下的一段代码:

public ActionResult Index()

{

return View();

}

可能有人会有疑问,既然我定义的是ActionResult,为什么返回值会是View呢?

其实这个View的类型是ActionResult的子类ViewResult,有关Controller中的方法与返回对象请参照下表:

Controller中的方法

返回对象

View

ViewResult

Redirect

RedirectResult

RedirectToAction

RedirectToActionResult

RedirectToRoute

RedirectToRouteResult

Json

JsonResult

JavaScriptResult

JavaScriptResult

Content

ContentResult

File

FileContentResult、FilePathResult、FileStreamResult

Mvc4_ActionResult应用的更多相关文章

随机推荐

  1. Oracle数据库的启动与停止

    oracle linux下开启与关闭 .启动ORACLE监听 首先要登录用户oracle:su - oracle oracle@localhost bin]$ lsnrctl --启动oracle监听 ...

  2. mysql获取当前时间,及其相关操作

    获取UNIX时间戳 : UNIX_TIMESTAMP(NOW()) 1.1 获得当前日期+时间(date + time)函数:now() 除了 now() 函数能获得当前的日期时间外,MySQL 中还 ...

  3. flume系列之—flume ng使用demo

    摘自:http://rjhym.blog.163.com/blog/static/28130232201263042013972/

  4. HTTP请求&响应、POST与GET

    HTTP请求&响应 既然说从入门级开始就说说Http请求包的结构.一次请求就是向目标服务器发送一串文本.什么样的文本?有下面结构的文本.HTTP请求包结构 请求包例子: POST /meme. ...

  5. POJ 2533 Longest Ordered Subsequence 最长递增序列

      Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequenc ...

  6. BZOJ 1266 上学路线route(最小割)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1266 题意:给出一个无向图,每条边有长度和代价.求出1到n的最短路.之后删掉一些边使得1 ...

  7. c++ socket 客户端库 socks5 客户端 RudeSocket™ Open Source C++ Socket Library

    介绍 一个c++ socket 客户端库 http://www.rudeserver.com/socket/index.html The RudeSocket™ Open Source C++ Soc ...

  8. 搭建本地的git仓库

    折腾了快一天了,终于搭建成功了. 分享一下搭建的步骤: 一.GIT仓库的创建 1. adduser git 2. passwd git 此例设置git的密码为123456 3. cd /home/gi ...

  9. .Net需要掌握的知识

    一.C#开发 1.C#基础 变量定义 如何变量的初始化 变量的作用域 常量 字符串处理 使用正则表达式 什么是CTS类型?数据类型如何分类以及各个数据类型范围 类型的转化分类 显式转换何隐式转化如何区 ...

  10. 如何在PADS的封装中做非金属化孔

    在设置封装的pads stacks的页面里,diameter,drill,plated三个项目(盘外径60mil,孔30mil) diameter:60,drill:30,plated:checked ...