ActionResult是控制器方法执行后返回的结果类型,控制器方法可以返回一个直接或间接从ActionResult抽象类继承的类型,如果返回的是非ActionResult类型,控制器将会将结果转换为一个ContentResult类型。默认的ControllerActionInvoker调用ActionResult.ExecuteResult方法生成应答结果。

ActionResult是一个抽象类, 在Action中返回的都是其派生类,具体如下:

类名 抽象类 父类 功能
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文件

示例代码:

public class ActionResultController : Controller
{ public ActionResult Index()
{
return View();
} public ActionResult ContentResult()
{
return Content("Hi, 我是ContentResult结果");
} public ActionResult EmptyResult()
{
return new EmptyResult();
} public ActionResult FileResult()
{
var imgPath = Server.MapPath("~/demo.jpg");
return File(imgPath, "application/x-jpg", "demo.jpg");
} public ActionResult HttpNotFoundResult()
{
return HttpNotFound("Page Not Found");
} public ActionResult HttpUnauthorizedResult()
{
//未验证时,跳转到Logon
return new HttpUnauthorizedResult();
} public ActionResult JavaScriptResult()
{
string js = "alert(\"Hi, I'm JavaScript.\");";
return JavaScript(js);
} public ActionResult JsonResult()
{
var jsonObj = new
{
Id = 1,
Name = "小铭",
Sex = "男",
Like = "足球"
}; return Json(jsonObj, JsonRequestBehavior.AllowGet);
} public ActionResult RedirectResult()
{
return Redirect("~/demo.jpg");
} public ActionResult RedirectToRouteResult()
{
return RedirectToRoute(new
{
controller = "Hello",
action = ""
});
} public ActionResult ViewResult()
{
return View();
} public ActionResult PartialViewResult()
{
return PartialView();
} //禁止直接访问的ChildAction
[ChildActionOnly]
public ActionResult ChildAction()
{
return PartialView();
} //正确使用ChildAction
public ActionResult UsingChildAction()
{
return View();
} }

最新文章

  1. CANopen学习——协议栈
  2. OS实验报告——作业调度模拟程序
  3. jQuery 3.0 的变化
  4. HDOJ(1728)逃离迷宫
  5. linux 进入mysql
  6. USB 3.0连接器引脚、接口定义及封装尺寸
  7. perl 监控mysql 事务和锁
  8. vs2008 下编译jrtplib-3.9.0成功
  9. "float: left;" div 不换行显示
  10. jQuery邮箱验证正则表达式验证邮箱合法
  11. 集合框架之Set接口
  12. MySql自动备份shell
  13. centos7.5环境下编译安装php7.0.30并安装redis和mongo扩展
  14. JAVA自学笔记25
  15. matlab--二维画图及三维画图的相关命令
  16. 微信小程序之----获取设备信息
  17. VC++ MFC如何生成一个可串行化的类
  18. JavaScript-Tool:moment-timezone.js
  19. laravel queue 修改之后不生效的坑
  20. log4j的NDC/MDC区别与应用

热门文章

  1. 第05组 Alpha冲刺 (3/6)(组长)
  2. MySQL架构(面)
  3. JavaScript高级程序设计(第四版) -- 随笔 -- 数组(未完)
  4. kettle练习
  5. __FUNCTION__
  6. 差点跪了!阿里3面真题:CAP和BASE理论了解么?可以结合实际案例说下不?
  7. JS处理Long类型精度丢失问题
  8. 还不懂spring中的bean的话,你一定得好好看看这篇文章
  9. CA证书与https讲解
  10. 详细了解IDM的“计划任务”功能