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:\ZJF\My Team Solutions\Allure\Web\BackOfficeV2\Google_Merchant_Center_快速操作手册.pdf";
4             FileStream stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite);
5
6             return File(stream, "application/pdf");
7         }

Asp.net MVC 之 ActionResult,布布扣,bubuko.com

时间: 2024-10-22 18:48:50

Asp.net MVC 之 ActionResult的相关文章

asp.net mvc之ActionResult

Web服务器接收到一个客户端请求以后,会对请求予以相应,而这个响应是通过Response来控制的, 但是在asp.net mvc 里,这部分的工作是由ActionResult来完成的, ActionResult是一个抽象类,所以具体的工作还是由很多个子类来完成, 具体的子类有 EmptyResult, ContentResult (通过Content,ContentEncoding,ContentType 分别设置返回的内容,字符编码格式以及媒体类型), FileResult(FileConte

ASP.NET MVC 中 ActionResult

ActionResult 是一个抽象(abstract)类,ViewResult 只是ActionResult 的一个实现(implementation).如果你确认你返回的是一个视图(view),你可以直接返回类型为ViewResult.ActionResult 有很多的派生类,如果你很确定你要返回的类型,你可以明确的返回该类型.如果你并不是很清楚,或者你根本不想去理解这些东西,你可以直接返回这些派生类的基类:ActionResult .

ASP.NET MVC中ActionResult的不同返回方式

1.返回视图 return View();//返回方法名对应的视图 return View("aaa");//返回名称为aaa的视图 2.返回文本内容 return Content("hello world"); 3.返回重定向 return Redirect("https://www.baidu.com"); return Redirect("~/Test/1.html"); return RedirectToAction(

asp.net和asp.net mvc在后台直接拼接输出的区别

前段时间想直接在mvc用一种最笨的方式输出一段脚本,所以就想到了Response.Write,但是后来发现很有问题,因为用这种方式输出的东西是直接在页面中第一行出现,所以脚本函数根本就调用不到,所以才改用html.raw() 今天观察了下传统的asp.net和mvc使用 Response.Write输出,发现两种在出现位置上存在一定的区别 asp.net mvc public ActionResult Index() { var a = 1; var b = 2; Response.Write(

Asp.net MVC 中Controller返回值类型ActionResult

内容转自 http://blog.csdn.net/pasic/article/details/7110134 Asp.net MVC中Controller返回值类型 在mvc中所有的controller类都必须使用"Controller"后缀来命名并且对Action也有一定的要求: 必须是一个public方法 必须是实例方法 没有标志NonActionAttribute特性的(NoAction) 不能被重载 必须返回ActionResult类型 如: [csharp] view pl

【转】ASP.NET MVC学习笔记-Controller的ActionResult

1. 返回ViewResult public ActionResult Index()   {       ViewData["Message"] = "Welcome to asp.net MVC!";       return View();   }  public ActionResult Index(){    ViewData["Message"] = "Welcome to ASP.NET MVC!";    re

理解ASP.NET MVC中的ActionResult

通常我们在一个ASP.NET MVC项目中创建一个Controller的时候,Index()方法默认的返回类型都是ActionResult,通过查看UML图,ActionResult实际上是一个抽象类,因此实际返回的类型是该抽象类的子类. Ø ActionResult及其子类的UML图   有关ActionResult及其子类的UML图如下所示: 由于图片比较大,所以在浏览器中看起来可能比较小,也不太方便,大家可以点击这里下载大图,使用专业的图片浏览器打开来看. 下载大图 Ø ActionRes

ASP.NET MVC 使用Remote特性实现远程属性验证

RemoteAttribute是asp.net mvc 的一个验证特性,它位于System.Web.Mvc命名空间 下面通过例子来说明 很多系统中都有会员这个功能,会员在前台注册时,用户名不能与现有的用户名重复,还要求输入手机号码去注册,同时手机号码也需要验证是否重复,下面是实体类 /// <summary> /// 会员 /// </summary> public class Member { public int Id { get; set; } [Required(Error

CRUD Operations In ASP.NET MVC 5 Using ADO.NET

Background After awesome response of an published by me in the year 2013: Insert, Update, Delete In GridView Using ASP.Net C#. It now has more than 140 K views, therefore to help beginners I decided to rewrite the article i with stepbystep approach u