Я пытался сериализовать «массив» KeyValue, чтобы отправить его через PUT через http на мой веб-сервер asp.net.
Функция в Angular выглядит так:
SortAboutUs(data : KeyValue<number,number>[]) {
this.dataTransmitter.Put(this.apiUrl+'/api/aboutus/sort', data);
}
и если я отлаживаю следующий контейнер данных, это выглядит так:
У меня есть следующее в моем контроллере веб-сервера .net core.
[HttpPut("[action]")]
public ActionResult<bool> Sort(IList<KeyValuePair<int, int>> dto)
{
return Ok(_aboutUsService.Sort(dto));
}
Однако я получаю следующую ошибку при попытке отправить его через PUT:
The JSON value could not be converted to System.Collections.Generic.List`1[System.Collections.Generic.KeyValuePair`2[System.Int32,System.Int32]]. Path: $[0] | LineNumber: 0 | BytePositionInLine: 8.
Странно то, что я уже использовал ту же технику в другой старой версии ядра .net, и там все работает.
Я также заметил, что начиная с .net core 3.1 KeyValue в C# изменилось на KeyValuePair, но в более старых версиях .net core это было KeyValue.
Это должно что-то делать с моей связанной ошибкой?
И как я могу сериализовать KeyValue из Angular, чтобы мой веб-сервер мог его прочитать?