解决.net core .net5 jquery ajax请求action获取为null的问题

代码如下:

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 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太坑了

你可能感兴趣的:(解决.net core .net5 jquery ajax请求action获取为null的问题)