空参数 Ajax ASP.NET Core 3.0 MVC

问题描述 投票:0回答:1

我正在使用一个ASP.NET Core 3.0 MVC应用程序,其中我做了以下jQuery Ajax调用。

return $.ajax({
    type: type,
    url: '/' + controller + '/' + action,
    data: jsonData,
    timeout: timeout,
    contentType: "application/json; charset=utf-8",
    success: function (returnedData) {
        successFunc(returnedData);
    },
    error: function (errMsg) {
        errorFunc(errMsg);
    }
});

将数据对象传递给它

{
  input1: 'random',
  input2: '1',
  input3: '1',
},

但它总是传递空参数。

Null arguments from Ajax call

我也试过在启动时添加addnewtonsoftjson(),但似乎没有任何改变。

这里有一个类似的问题,并没有真正的答案。.Net Core 3.0 AJAX POST Body总是Null的问题。

ajax asp.net-core asp.net-core-mvc
1个回答
0
投票

我认为你的问题是相对于你使用的HTTP方法类型和你传递给后台的内容类型而言的。

我发现了一个关于contentType的伟大总结。此处

如果你不想钻研得太深,你可以把你的contentType改为 application/x-www-form-urlencoded; charset=UTF-8 应该可以解决你的问题


0
投票

所以保持你问题中显示的c#代码。在你的js调用中。

var data = JSON.stringify({ 
                 'input1': ‘inputvalue’,
                 'input2':’inputvalue’,
                 ‘input3’: ‘inputval’
               });

$.ajax({
        type: "POST",
        url: same as you have in the question
        data: data,

        contentType: 'application/json',

success: function (returnedData) {
        successFunc(returnedData);
    },
    error: function (errMsg) {
        errorFunc(errMsg);
    }

    });

0
投票

错误似乎来自于定义内容类型。

   return $.ajax({
        type: type,

        url: '/' + controller + '/' + action,
        data: jsonData,

        success: function (returnedData) {
            successFunc(returnedData);
        },
        error: function (errMsg) {
            errorFunc(errMsg);
        }
    });

没有 内容类型 定义,并正确地传递到控制器中的动作。

© www.soinside.com 2019 - 2024. All rights reserved.