代码如下:
var par=JSON.stringify({name:'Hello'});
$.ajax({
url: "/xxx/Edit",
type: "POST",
contentType: "application/json",
data:par,
success: function (result) {
//
},
action代码
// xxx controller
public async Task<JsonResult> Edit(string name)
{
...
await ...
}
以上代码在mvc5中一点问题都没有,但是在core或.net5项目中 data值永远都为null。
后来查资料
https://stackoverflow.com/questions/59627571/asp-net-core-jquery-ajax-post-always-null
只需要改前端代码即可。如下
var par={name:'Hello'};//注意这里有变化,不需要JSON.stringify
$.ajax({
url: "xxx/Edit",
type: "POST",
//contentType: "application/json",
data: par,
success: function (result) {
//
},
error: function (jqXHR) {
//
}
});
也就是删除contentType的代码,data赋值不需要JSON.stringify转换,问题解决了。。。。
这tm太坑了