Javascript 使用JS Fetch API将数据发布到asp控制器

Javascript 使用JS Fetch API将数据发布到asp控制器,javascript,jquery,ajax,asp.net-core,fetch,Javascript,Jquery,Ajax,Asp.net Core,Fetch,我正在使用fetch API将数据发布到我的asp控制器,其中包含: var data1 = {ID: '1', Name: 'John'}, data2 = {ID: '1',Action: 'Add'}; fetch('myController/MyAction',{method: 'post',body: JSON.stringify({data1: data1, data2: data2})}); 我的控制器动作如下: public async Task<I

我正在使用fetch API将数据发布到我的asp控制器,其中包含:

    var data1 = {ID: '1', Name: 'John'},
    data2 = {ID: '1',Action: 'Add'};
   fetch('myController/MyAction',{method: 'post',body: JSON.stringify({data1: data1, data2: data2})});
我的控制器动作如下:

public async Task<IActionResult>MyAction([FromBody]Data1 data1, [FromBody]Data2 data2)
{
//break
//do something with data1
// do something with data2
}
公共异步任务MyAction([FromBody]Data1 Data1,[FromBody]Data2 Data2)
{
//中断
//对数据1做些什么
//对数据2做些什么
}

我可以在开发者工具中看到,数据正在被传递。但在VS调试器中,我看到两个对象的所有属性都为null。请注意,如果我只发送数据1或数据2,模型绑定成功。

如果您可以修改控制器,这将起作用

public async Task<IActionResult>MyAction([FromBody]Data data)
{
//break
//do something with data1
// do something with data2
}
您可以将两个属性
data1
data2
添加到类
Data


这种方法似乎很简单,而且还提高了代码的可读性。控制器希望请求中有一个对象,该对象可以包含任意多的数据。

您是否尝试过将
JSON.stringify()
用于为jQuery
data
属性构建的同一对象?
JSON.stringify({Master:Master,Flag:Flag})
可能的重复项。忽略已接受的答案,选择最前面的答案。您是否可以更改控制器代码?@YousufKhan Yes!顺便说一下,我尝试在data1模型类中添加data2作为属性,这很好。但我担心,当我继续添加更多的模型和逻辑时,会出现问题……好主意!请让我和我的同伴讨论一下。但令我惊讶的是,我能够用jQuery.ajax发送和捕获两个对象,而且我不必对js对象进行字符串化,而我的数据类型是json。
var data1 = {ID: '1', Name: 'John'},
    data2 = {ID: '1',Action: 'Add'};
   fetch('myController/MyAction',{method: 'post',body: JSON.stringify({data1: data1, data2: data2})});