mvc的Controller返回值类型ActionResult详解

简介: 一、简介 ActionResult  操作方法通过执行工作并返回操作结果来响应用户输入。 操作结果表示框架将代表操作方法执行的命令。 ActionResult 类是操作结果的基类。 以下类型从 ActionResult 派生: ContentResult EmptyResul...

一、简介

ActionResult 

操作方法通过执行工作并返回操作结果来响应用户输入。 操作结果表示框架将代表操作方法执行的命令。 ActionResult 类是操作结果的基类。

以下类型从 ActionResult 派生:

  地址:https://msdn.microsoft.com/zh-cn/library/system.web.mvc.actionresult.aspx?f=255&MSPPError=-2147217396

  我们预览下控制器的基类Controller

  

简单示例

 javascript

<script type="text/javascript"> 
$(function () {
        $("#ControlId").change(function () {//ControlId为下拉控件ID
            var value = $(this).val();//获取到当前选中的值
            if (value != null) {    //Ajax获取舱位,并设置复选框
                $.post(          //POST
                 $("#getUrl").val(),  //url
                 { fmid: value },    //data
                  function (data) {   //success:
                      document.getElementById("id_ccl").innerHTML = "";
                      var strHtml = "";
                      var vIsShared = "";
                      for (var key in data) {
                          for (var result in data[key]) {
                              switch (result.toString()) {
                                  case "IsShared":
                                      {
                                          vIsShared = data[key][result];
                                          break;
                                      }
                                  default: break;
                              }
                          }
                          strHtml += "<input type=\"checkbox\" id=\"chk\" " + (vIsShared == true ? " checked=\"checked\" " : " ") + " name=\"chk\" value=\"true\" />";
                      }
                      document.getElementById("id_ccl").innerHTML = strHtml;
                  }
                  , "json" );  //type
            }
            else alert(value);
        });
    });
</script>

MVC Controllor:
[HttpPost]
public ActionResult GetList(int id)
{
   return Json(eccList);
}
[HttpGet]
public ActionResult GetList(int id)
{
   return Json(eccList, JsonRequestBehavior.AllowGet);
}

在MVC下,由于对数据的保护,默认情况下request为post,使用GET请求会被阻止。

如果客户端使用get请求,需要设置behavior为JsonRequestBehavior.AllowGet 。

二、IHttpActionResult

1、Json<T>(T content)

 return Json<List<ORDER>>(lstRes);

2、Ok()、 Ok<T>(T content)

 return Ok();
 return Ok<string>(name);

3、NotFound()

  return NotFound();

当需要向客户端返回找不到记录时,有时需要用到NotFound()方法
NotFound()方法会返回一个404的错误到客户端。

4、其他

其他还有一些方法,都有它特定的用途。在此贴出来。

4.1、Content<T>(HttpStatusCode statusCode, T value)

   [HttpGet]
        public IHttpActionResult GetContentResult()
         {
            return Content<string>(HttpStatusCode.OK, "OK");
        }

向客户端返回值和http状态码。

4.2、BadRequest()

 [HttpGet]
         public IHttpActionResult GetBadRequest(ORDER order)
         {
             if (string.IsNullOrEmpty(order.ID))
                 return BadRequest();
             return Ok();
         }

向客户端返回400的http错误。

4.3、Redirect(string location)

   [HttpGet]
        public IHttpActionResult RedirectResult()
        {
            return Redirect("http://localhost:21528/api/Order/GetContentResult");
        }

将请求重定向到其他地方。

 

相关: MVC控制器总结

 

参考:http://www.cnblogs.com/zfdcp-028/p/5788649.html


相关文章
|
JSON 前端开发 Java
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(下)
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(下)
112 0
|
XML 前端开发 JavaScript
SpringMVC中单独配置<mvc:default-servlet-handler/> 导致 Controller失效
SpringMVC中单独配置<mvc:default-servlet-handler/> 导致 Controller失效
290 0
|
监控 前端开发 Java
spring mvc 获取请求参数,获取返回值的解决办法
spring mvc 获取请求参数,获取返回值的解决办法
302 0
|
JSON 前端开发 Java
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(上)
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(上)
68 0
|
设计模式 JSON 前端开发
2021-08-11Spring MVC,入门项目搭建及流程,springMVC的适配器和映射器,基于注解的controller,映射请求,方法返回值,requestmapping注解
2021-08-11Spring MVC,入门项目搭建及流程,springMVC的适配器和映射器,基于注解的controller,映射请求,方法返回值,requestmapping注解
58 0
|
前端开发 Java Spring
《Spring MVC》 第六章 MVC类型转换器、格式化器
《Spring MVC》 第六章 MVC类型转换器、格式化器
196 0
|
前端开发 Java Spring
《Spring MVC》 第三章 @Controller、@RequestMapping 注解和获取请求参数
《Spring MVC》 第三章 @Controller、@RequestMapping 注解和获取请求参数
205 0
|
前端开发 Java Spring
spring mvc 一次请求如何映射到对应的controller 如何规避冲突
spring mvc 一次请求如何映射到对应的controller 如何规避冲突
154 0
|
前端开发 Java 索引
Spring MVC Controller 方法参数 Map 的实现类是什么?
问题 题主问题描述如下: 在SpringBoot中,Controller的参数中有Map接口类型的,请问他的实现类是什么? 突发奇想,在SpringBoot中,Controller的参数中有Map接口类型的
408 0
Spring MVC Controller 方法参数 Map 的实现类是什么?
|
JSON 前端开发 Java
Spring MVC自定义消息转换器(可解决Long类型数据传入前端精度丢失的问题)
对于Long 类型的数据,如果我们在Controller层通过@ResponseBody将返回数据自动转换成json时,不做任何处理,而直接传给前端的话,在Long长度大于17位时会出现精度丢失的问题。
345 0