• 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         }
  • 相关阅读:
    【视频+图文】带你快速掌握Java中含continue语句的双重for循环
    【小白视频学Java for循环】3分钟学会Java的for循环,让看懂for循环嵌套再不是难事
    【机器学习基础】交叉熵(cross entropy)损失函数是凸函数吗?
    【tf.keras】tensorflow datasets,tfds
    【python3基础】命令行参数及 argparse
    【机器学习实战】验证集效果比测试集好怎么办?
    [主动学习--查询策略] 01 Core-set
    Monte-Carlo Dropout,蒙特卡罗 dropout
    NumPy 会自动检测并利用 GPU 吗?
    Linux 和 Windows 查看 CUDA 和 cuDNN 版本
  • 原文地址:https://www.cnblogs.com/zjf1987/p/ActionResult.html
Copyright © 2020-2023  润新知