zoukankan      html  css  js  c++  java
  • mvc的Controller返回值类型ActionResult详解

    一、简介

    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


  • 相关阅读:
    向Sql Server数据库插入中文时显示乱码的解决办法 (转)
    自定义控件开发知识点
    Win7旗舰版中的IIS配置asp.net的运行环境
    windows使用
    Visual Studio 2012自动添加注释(如版权信息等)
    3个线程彼此通知
    多线程12_张孝祥 java5读写锁技术的妙用
    多线程11_张孝祥 java5的线程锁技术
    Spring整合hibernate4:事务管理[转]
    HTML界面JQuery ajax 返回200,但走Error方法
  • 原文地址:https://www.cnblogs.com/xcsn/p/2843115.html
Copyright © 2011-2022 走看看