Action 的返回值 ActionResult
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Action 的返回值 ActionResult相关的知识,希望对你有一定的参考价值。
1. 当返回一个页面,return View(); View() 方法的返回值是 ViewResult 类型,继承自 ActionResult。
2. 当重定向一个页面, return Redirect("Path"); Redirect() 方法的返回值类型是 RedirectResult。
3. 直接返回文本内容:ruturn Content("value"); Content() 方法的返回值类型是 ContentResult。
4. 当返回一个文件的时候,使用 File() 方法,File 方法有多个重载:
//返回 byte[] 类型的数据 protected internal FileContentResult File(byte[] fileContents, string contentType); //返回 Stream 类型的数据 protected internal FileStreamResult File(Stream fileStream, string contentType); //fileName 为本地文件路径 protected internal FilePathResult File(string fileName, string contentType); //上面三个方法是在网页直接显示内容 //下面三个方法是对应的直接下载的 protected internal virtual FileContentResult File(byte[] fileContents, string contentType, string fileDownloadName); protected internal virtual FileStreamResult File(Stream fileStream, string contentType, string fileDownloadName); virtual FilePathResult File(string fileName, string contentType, string fileDownloadName);
5. 当没有返回相应的内容或页面的时候,return HttpNotFound(); 浏览器会给出 404 错误。
6. 也可以返回 javascript 代码, 但是返回的是代码字符串,效果和 return Content() 是一样的,尽量不要用。
7. 返回 Josn: return Json(object data), 把 data 对象序列化成 json 字符串给客户端,并且设置 contentType为 “application/json"。Json 方法默认是禁止 Get 请求的,只能 Post 请求,所以如果 Get 请求方法访问是会报错的,如果确实需要使用 Get 方式,使用 return Json(data, JsonRequestBehavior.AllowGet)。
ASP.NET MVC 默认提供的 Json 方法实现有以下缺点:
- 日期类型的属性格式化字符串是 "\/Date(1491921608507)\/" 这样的格式,在客户端要用 JS 代码格式化处理,很麻烦。
- Json 字符串中的属性的名字和 C#中的大小写一样,不符合 JS 中 ”小写开头,驼峰命名“的习惯。
- 无法处理循环引用的问题(尽管应该避免循环引用)。
处理方法: 不使用默认提供的 Json 方法,使用 Json.Net。
以上是关于Action 的返回值 ActionResult的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC ActionResult的其它返回值