Javascript 如何在.net core中无需模型就将Json数据发布到控制器

Javascript 如何在.net core中无需模型就将Json数据发布到控制器,javascript,jquery,json,ajax,.net-core,Javascript,Jquery,Json,Ajax,.net Core,网格中存储着大量的数据,这些数据来自一个sql查询,而不是一个表。数据类型是Json。我过滤了数据,然后想将过滤后的数据发送到控制器。但这怎么可能呢? 以下是javascript块中的测试json数据: var jsonData = { "FirstName": "John", "LastName": "Doe", "DoB": "01/01/1970" }; 这是我的javascript函数: function submitForm() { var user

网格中存储着大量的数据,这些数据来自一个sql查询,而不是一个表。数据类型是Json。我过滤了数据,然后想将过滤后的数据发送到控制器。但这怎么可能呢? 以下是javascript块中的测试json数据:

var jsonData = {
    "FirstName": "John",
    "LastName": "Doe",
    "DoB": "01/01/1970" };
这是我的javascript函数:

function submitForm() {
    var user = jsonData;

    jQuery.ajax({
        type: "POST",
        url: "@Url.Action("GetJsonData", "Account")",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify(user),
        success: function (data) { alert(data); },
        failure: function (errMsg) {
            alert(errMsg);
        }
    });
}
如何在控制器中获取Json数据?以下是我的[HttpPost]方法:

    [HttpPost]
    public IActionResult GetJsonData(String user)
    {
        //...
        return null;
    }
用户获取空。。我是否应该更改方法中的字符串类型或其他内容?

由于用户是字符串,您可以尝试使用属性用户创建对象:

或使用FormData:


我用属性用户创建了一个对象,但它仍然返回null…@sudu,这是因为返回null;在GetJsonData.No方法中,我指的是GetJsonData参数的用户返回值null@sudu哦,对不起。我已经更新了第二种方式,您可以再试一次。我已经删除了dataType属性,并添加了两个属性contentType和processDataễn、 更新的方法解决了我的问题:这个JavaScript在Razor视图中吗?必须这样做,否则@Url.Action将无法工作。不,这与Razor视图无关。因为我为GetJsonData方法指定了一个断点,并且该方法可以工作。。。
jQuery.ajax({
    type: "POST",
    url: "@Url.Action("GetJsonData", "Account")",
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    data: { 
        user: JSON.stringify(user) 
    },
    success: function (data) { alert(data); },
    failure: function (errMsg) {
        alert(errMsg);
    }
});
var formData = new FormData();
formData.append('user', JSON.stringify(user));

jQuery.ajax({
    type: "POST",
    url: "@Url.Action("GetJsonData", "Account")",
    contentType: false,
    processData: false,
    data: formData,
    success: function (data) { alert(data); },
    failure: function (errMsg) {
        alert(errMsg);
    }
});