zoukankan      html  css  js  c++  java
  • 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         }
  • 相关阅读:
    使用python抓取知乎日报的API数据
    git 使用笔记(三)-分支的使用
    git 使用笔记(二)
    git 使用笔记(一)
    Grunt的配置和使用(一)
    笔记-Node.js中的核心API之HTTP
    笔记-Nodejs中的核心API之Events
    (译)Node.js的 EventEmitter 教程
    高性能网站优化-确保异步加载脚本时保持执行顺序
    linux环境下source vimrc提示错误unexpected token `"autocmd"'
  • 原文地址:https://www.cnblogs.com/zjf1987/p/ActionResult.html
Copyright © 2011-2022 走看看