ActionResult的返回类型

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

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

 

类名抽象类父类功能
ContentResult  根据内容的类型和编码,数据内容.
EmptyResult  空方法.
FileResultabstract 写入文件内容,具体的写入方式在派生类中.
FileContentResult FileResult通过 文件byte[] 写入文件.
FilePathResult FileResult通过 文件路径 写入文件.
FileStreamResult FileResult通过 文件Stream 写入文件.
HttpUnauthorizedResult  抛出401错误
JavaScriptResult  返回javascript文件
JsonResult  返回Json格式的数据
RedirectResult  使用Response.Redirect重定向页面
RedirectToRouteResult  根据Route规则重定向页面
ViewResultBaseabstract 调用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();
        }

    }

 

转载于:https://www.cnblogs.com/XM-Zhangjh/p/6679956.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值