• Asp.net MVC 之 ActionResult


    Action运行完后,回传的值通过ActionResult 类别或者其衍生的类别操作。ActionResult是一个抽象类,因此,Asp.net MVC 本身就实作了许多不同类型的ActionResult的子类别。

    ActionResult 子类以及说明:

    常用的ViewResult用来回传一个View,即HTML的页面内容;

    PartialViewResult用来回传一个View,但是这个View是PartialView;

    RedirectResult用来将网页转向其他的网址;

    EmptyResult用来返回一个空白的页面;

    ContentResult返回一个文字属性(文本内容);

    FileResult返回一个二进制的文档;

    FileContentResult 返回一个可以下载的二进制文件;

    FilePathResult返回一个可以下载的并且制定路径的二进制文件;

    FileStreamResult返回一个可以下载的流式文件;

    JsonResult返回一个JSON结果;

    JavaScriptResult返回一个JavaScript对象。

    这些都是继承自ActionResult的类别,也可以用来当做Action 的类型。

    但是我们经常在Controller中定义的返回类型为ActionResult, 但是返回的值经常是别的,比如:

    1 //
    2  // GET: /Product/
    3  public ActionResult Index()
    4 {
    5       return View();
    6  }


    这是以为View返回的对象是ViewResult.

    Controller常见的方法Redirect返回的对象是RedirectResult;

    RedirectToAction返回的对象是RedirectToActionResult;

    RedirectToRoute返回的对象是RedirectToRouteResult;

    Json返回的对象是JsonResult;

    JavaScriptResult返回的对象是JavaScriptResult;

    Content返回的对象是ContentResult;

    File返回的对象是FileContentResult、FilePathResult、FileStreamResult等;

    下面是几个例子

     返回PartialView

    1        public ActionResult ProductList()
    2         {
    3             ProductBLL productBLL = new ProductBLL(HttpContext.Application["EFConnectionString"].ToString());
    4 
    5             IEnumerable<Product> products = productBLL.ListProducts();
    6 
    7             return PartialView("~/Views/InStock/_Products.cshtml",products);
    8         }


    返回Json

    1         public ActionResult RetrieveProduct(int id)
    2         {
    3             ProductBLL productBLL = new ProductBLL(HttpContext.Application["EFConnectionString"].ToString());
    4 
    5             Product product = productBLL.RetrieveProduct(id);
    6 
    7             return Json(product,JsonRequestBehavior.AllowGet);
    8         }


    返回pdf

    1         public ActionResult LoadPdfFile()
    2         {
    3             string path = @"C:JFMy Team SolutionsAllureWebBackOfficeV2Google_Merchant_Center_快速操作手册.pdf";
    4             FileStream stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite);
    5 
    6             return File(stream, "application/pdf");
    7         }
  • 相关阅读:
    跑路了
    *CTF 2019 quicksort、babyshell、upxofcpp
    pyspark如何遍历broadcast
    pwn易忘操作原理笔记
    pwn学习之四
    pwn学习之三
    pwn学习之二
    pwn学习之一
    2017GCTF部分writeup
    OD使用教程12
  • 原文地址:https://www.cnblogs.com/zjf1987/p/ActionResult.html
Copyright © 2020-2023  润新知