本来在 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 ,请问如何解决?
最终采用了更简单的解决方法,将 ajax 代码中的 data: JSON.stringify({ cateIds: cateIdList })
改为 data: JSON.stringify(cateIdList)
可能需要定义一个 DTO 类:
class Dto
{
public string CateIds {get; set;}
}
然后在 Action 中绑定这个类为 FromBody
JSON.stringify({ cateIds: cateIdList })
直接修改为{ cateIds: cateIdList }
???
– 不如隐茶去 5年前@不如隐茶去: 写错了,已更正
– dudu 5年前