mvc jquery ajax传递数组null问题

Posted 涛声依旧1988

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mvc jquery ajax传递数组null问题相关的知识,希望对你有一定的参考价值。

mvc jquery ajax传递数,  areaIds是个int数组。后台action用list<int>接收。当我想传空值时,先用null传递,结果action收到的AreaIds竟然含有一个元素0,非常诡异,有空再查找具体原来。后来想传空时不再用Null,改成[],这样就ok了。很奇怪

 function refreshStoreHouseDatas(marketId,areaIds,selectedValues) {
            var data = {
                marketId: marketId,
                areaIds: areaIds
            };
            var url = "@Url.Action("LoadStoreHousesByAreaIds", "CommonAjax")";
            $.post(url, data, function(result) {
                $("#StoreHouseIds").data("kendoMultiSelect").setDataSource(result);
                $("#StoreHouseIds").data("kendoMultiSelect").enable(true);
                if (selectedValues!=null) {
                    $("#StoreHouseIds").data("kendoMultiSelect").value(selectedValues);
                }
            });
        };

 

 

action

 [HttpPost]
        public ActionResult LoadStoreHousesByAreaIds(LoadStoreHousesByAreaIdsRequest request)
        {
            List<StoreHouse> storeHousesList;
            if (request.AreaIds.Any())
            {
                storeHousesList = _commonService.GetEquipmentStoreHouses(request.AreaIds);
            }
            else
            {
                request.AreaIds = _commonService.ConvertToLeafChildAreas(new List<int>{ request.MarketId}).Select(m=>m.Id).ToList();
                storeHousesList = _commonService.GetEquipmentStoreHouses(request.AreaIds);
            }
            var storeHouses = storeHousesList.Select(x => new SelectListItem
            {
                Value = x.Id.ToString(),
                Text = x.Name
            }).ToList();

            return Json(storeHouses, JsonRequestBehavior.AllowGet);
        }

 

以上是关于mvc jquery ajax传递数组null问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery Ajax 将对象列表传递给 MVC 控制器方法

如何使用 Ajax 调用 MVC4 传递两个字符串数组

JQuery.Ajax()的data参数传递方式

Mvc Jquery Ajax Post 返回 null

$.ajax传递json格式参数,某属性为null,取值为空字符串的问题。

jquery Ajax 调用 - 数据参数未传递给 MVC 控制器操作