zoukankan      html  css  js  c++  java
  • ajax 传递数组类型参数后台接收不到的问题

     在做排序功能的时候需要将一个数组的数据传递到后台,(当时怎么没用json,如果用json就没有那么多的事情了),数据提交采用ajax!

    先看代码

    js:

     submitbtn: function () {
                //    提交
                $("#submitbtn").click(function () {
                    $.dialog.confirm("确定要提交吗?", function () {
                        var arr = [];
                        $(".title").each(function () {
                            var orderindex = $(this).data("index")
                            arr.push(orderindex);
    
                        })
                        //查看数据是否存在
                        console.log(arr);
                        $.ajax({
                            url: "ChangePaymentTypeLevel",
                            data: { array: arr },
                            type: "post",
                            dataType: "json",
                            dynsc: false,
                            //traditional: true,
                            success: function (res) {
                                $.dialog.alert(res, function () {
                                    window.parent.location.reload();
                                });
                            }
                        })
                    });
                });
            }

    后台:

    /// <summary>
            /// 批量修改支付类型排序
            /// </summary>
            /// <param name="array"></param>
            /// <returns></returns>
            [HttpPost]
            public JsonResult ChangePaymentTypeLevel(string[] array)
            {
                List<int> list = array.Select<string, int>(b => Convert.ToInt32(b)).ToList();
                var result = ConfigService.ChangePaymentTypeLevel(list);
                if (result)
                {
                    return Json("操作成功!");
                }
                else
                {
                    return Json("操作失败!");
                }
            }

     问题是:在js中确实拿到了数据,而且在console中可以展示出来,但是ajax提交到后台的时候总是拿不到,不管是用string[] 还是采用List<string>甚至看Request中对象都没有数据。

    查了资料后知道是ajax数据提交的问题,如果是一个数组需要对traditional进行配置://traditional: true;

    官方文档的解释如下:
    traditional 
    类型:Boolean,jq中默认为false
    如果你想要用传统的方式来序列化数据,那么就设置为 true。
    Set this to true if you wish to use the traditional style of param serialization

    嗯,很简单,自己不知道,如果传递数组的话也可以使用json,只不过你用json多了只有可能就忘记了怎么用数组了!

    有得必有失吧!

    zk-20170905

  • 相关阅读:
    浅谈HTTPS协议和SSL、TLS之间的区别与关系
    ECC加密算法原理入门介绍
    用实例给新手讲解RSA加密算法
    ECC椭圆曲线详解(有具体实例)
    设置VMware随系统开机自动启动并引导虚拟机操作系统
    Windows自带的端口转发工具netsh使用方法
    JAVA中使用P和Q分量计算N和D进行RSA运算
    VirtualBox虚拟机和主机之间的通信
    centos 系统管理维护指南
    页面找不到js方法的原因,关于EasyUI
  • 原文地址:https://www.cnblogs.com/zhaokunbokeyuan256/p/7477286.html
Copyright © 2011-2022 走看看