• 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         }
  • 相关阅读:
    异常:Neither BindingResult nor plain target object for bean name 'command' available as request attribute
    SpringMVC 如何定义类型转换器
    Springmvc 进行数据类型转换
    mvc:view-controller 标签
    将POST请求转换为DELETE、PUT等请求的方法
    关于HiddenHttpMethodFilter
    关于抽象方法的调用的
    一对一关联关系基于主键映射的异常 IdentifierGenerationException
    (二十四)js内存回收方法
    (二十三)函数柯里化
  • 原文地址:https://www.cnblogs.com/zjf1987/p/ActionResult.html
Copyright © 2020-2023  润新知