отправить данные на asp контроллер, используя JS Fetch API - PullRequest
0 голосов
/ 08 апреля 2020

Я отправляю данные на мой asp контроллер, используя API извлечения с:

    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
}

Я вижу в инструментах разработчика, данные передаются. Но в VS отладчике я вижу все свойства обоих объектов нулевыми. Обратите внимание, что , если я отправляю только данные1 или данные данных2, модель успешно привязана.

1 Ответ

0 голосов
/ 10 апреля 2020

Это сработает, если вы сможете изменить свой контроллер

public async Task<IActionResult>MyAction([FromBody]Data data)
{
//break
//do something with data1
// do something with data2
}

и

var data1 = {ID: '1', Name: 'John'},
    data2 = {ID: '1',Action: 'Add'};
   fetch('myController/MyAction',{method: 'post',body: JSON.stringify({data1: data1, data2: data2})});

Вы можете добавить два свойства data1 & data2 к классу Data.

Этот подход кажется простым и улучшает читабельность кода. Ваш контроллер ожидает один объект в запросе, и этот объект может содержать столько данных, сколько вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...