码迷,mamicode.com
首页 > 其他好文 > 详细

(七)Action 的返回值 ActionResult

时间:2017-04-12 02:11:35      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:循环   ati   cat   c#   post   view   ctr   get   应该   

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 方法实现有以下缺点:

  1. 日期类型的属性格式化字符串是 "\/Date(1491921608507)\/" 这样的格式,在客户端要用 JS 代码格式化处理,很麻烦。
  2. Json 字符串中的属性的名字和 C#中的大小写一样,不符合 JS 中 ”小写开头,驼峰命名“的习惯。
  3. 无法处理循环引用的问题(尽管应该避免循环引用)。

处理方法: 不使用默认提供的 Json 方法,使用 Json.Net。

(七)Action 的返回值 ActionResult

标签:循环   ati   cat   c#   post   view   ctr   get   应该   

原文地址:http://www.cnblogs.com/yesunda/p/6696990.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!