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         }
  • 相关阅读:
    RSA加密
    各种正则
    用Fragment制作的Tab页面产生的UI重叠问题
    Android源码下载
    Android Studio使用百度地图问题总结
    Android获取网络类型
    Android Studio类中实现Serializable自动生成serialVersionUID
    【Android开发】如何设计开发一款Android App
    UIViewController生命周期
    微信支付开发经验分享
  • 原文地址:https://www.cnblogs.com/zjf1987/p/ActionResult.html
Copyright © 2011-2022 走看看