jquery post 数组参数 到 mvc api

后台是c# mvc api
前台是jquery
直接使用$.post 无法向api传递参数,需要做些处理后台才能正常接收

后台代码:

 [HttpPost]
        [Route("frame/RoleSetRight")]
        public object RoleSetRight([FromBody]JObject para)
        {
            try
            {
                List<string> rtmp = new  List<string>();
                foreach(JToken item in para["rids"].ToArray())
                {
                    rtmp.Add(item.ToString());
                }

                string[] rids = rtmp.ToArray();
                int id = int.Parse(para["id"].ToString());

               .....

                return Common.Msg(EnumState.ok);
            }
            catch (Exception e)
            {
                return Common.Msg(EnumState.err, e.Message);
            }
        }

参数需要使用[FromBody],并且只能有一个参数,这里用NewTonSoft的Jobject来接收,然后再组织成自己需要的参数形式。

前台js:

  var p = { id: $('#role_id').val(), rids: ids };
    //var para = $.param(p, true);
    var para = JSON.stringify(p);
    //$.post('/Frame/RoleSetRight', para, function (data) {
    //    accecpResult(data, function () {
    //        window.parent.roleRightHasSub();
    //    });
    //})
    $.ajax({
        type: 'post',
        data: para,
        url: '/frame/rolesetright',
        contentType: 'application/json',
        success: function (response) {
            accecpResult(response, function () {
                window.parent.roleRightHasSub();
            });
        }
    })

注释部分是向普通controller的action传递数组参数的方法,对api来说不管用了,需要用ajax来,并且contentType需设置成’application/json’才可以,参数使用JSON.stringify()来组织一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值