首页新闻找找看学习计划

ajax post 字符串到 asp.net core mvc action 接收不到数据的问题

0
悬赏园豆:30 [已解决问题] 解决于 2019-06-11 17:45

本来在 asp.net 中正常工作的代码迁移到 asp.net core 后 action 总是接收不到 ajax post 过来的字符串

ajax 代码如下:

$.ajax({
    type: 'post',
    url: '/aggsite/SubCategories',
    data: JSON.stringify({ cateIds: cateIdList }),
    contentType: 'application/json; charset=utf-8',
    dataType: 'text',
    success: function (data) {
        resultElement.html(data);
    }
});

asp.net core controller action 中的代码如下:

[HttpPost]
public async Task<string> SubCategories([FromBody]string cateIds)
{
    //...
}

上面代码中 cateIds 的值总是为 null ,请问如何解决?

dudu的主页 dudu | 高人七级 | 园豆:41305
提问于:2019-06-11 15:17

本来在 asp.net core 中正常工作的代码迁移到 asp.net core 后

???

不如隐茶去 4个月前

@不如隐茶去: 写错了,已更正

dudu 4个月前
< >
分享
最佳答案
0

最终采用了更简单的解决方法,将 ajax 代码中的 data: JSON.stringify({ cateIds: cateIdList }) 改为 data: JSON.stringify(cateIdList)

dudu | 高人七级 |园豆:41305 | 2019-06-11 17:45
其他回答(2)
0

可能需要定义一个 DTO 类:

class Dto
{
    public string CateIds {get; set;}
}

然后在 Action 中绑定这个类为 FromBody

收获园豆:20
不如隐茶去 | 园豆:524 (小虾三级) | 2019-06-11 15:52
0

JSON.stringify({ cateIds: cateIdList })
直接修改为{ cateIds: cateIdList }

收获园豆:10
Giant Liu | 园豆:888 (小虾三级) | 2019-06-11 16:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册