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

  • 相关阅读:
    MVVM教程[资源+分析]
    WPF 多点触摸开发[1]:Windows 7 安装多点触屏模拟器
    wpf 打印 之PirintVisual
    WPF:PrintVisual的问题
    几个漂亮的Button的CSS
    很不错的后台界面收集[提供下载]
    网页刷新方法集合
    JS各种各样的拖动效果
    CSS+DIV(盒子)
    网页刷新方法集合
  • 原文地址:https://www.cnblogs.com/zhaokunbokeyuan256/p/7477286.html
Copyright © 2011-2022 走看看