PUT 序列化 angular KeyValue 到 ASP.NET KeyValuePair 的正确语法是什么?
What is the correct syntax to PUT serialize angular KeyValue to ASP.NET KeyValuePair?
我试图序列化一个 KeyValue "Array" 以通过 PUT 通过 http 将其发送到我的 asp.net 网络服务器。
Angular 中的函数如下所示:
SortAboutUs(data : KeyValue<number,number>[]) {
this.dataTransmitter.Put(this.apiUrl+'/api/aboutus/sort', data);
}
如果我调试以下数据容器,则它看起来像这样:
我的 .net 核心 Web 服务器的控制器中有以下内容
[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 core 中使用了相同的技术,并且一切似乎都有效。
我还注意到,自 .net core 3.1 起,C# 中的 KeyValue 更改为 KeyValuePair,但在旧版本的 .net core 中,它是 KeyValue。
这是否与我的相关错误有关?
以及如何从 Angular 序列化 KeyValue 以便我的网络服务器可以读取它?
你的对象应该是这样的:-
[
{
4: 0
},
{
5: 1
},
{
6: 2
}
]
我能够通过创建自己的 KeyValue Class 解决问题,如下所示:
public class KeyValue<K,V>
{
public K Key { get; set; }
public V Value { get; set; }
}
在此之后我的控制器方法现在看起来像这样:
[HttpPut("[action]")]
public ActionResult<bool> Sort([FromBody] IList<KeyValue<int, int>> dto)
{
return Ok(_aboutUsService.Sort(dto));
}
感谢这种方法,控制器能够通过 PUT 接收从 Angular 发送到我的网络服务器的键值数组...
我试图序列化一个 KeyValue "Array" 以通过 PUT 通过 http 将其发送到我的 asp.net 网络服务器。
Angular 中的函数如下所示:
SortAboutUs(data : KeyValue<number,number>[]) {
this.dataTransmitter.Put(this.apiUrl+'/api/aboutus/sort', data);
}
如果我调试以下数据容器,则它看起来像这样:
我的 .net 核心 Web 服务器的控制器中有以下内容
[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 core 中使用了相同的技术,并且一切似乎都有效。
我还注意到,自 .net core 3.1 起,C# 中的 KeyValue 更改为 KeyValuePair,但在旧版本的 .net core 中,它是 KeyValue。
这是否与我的相关错误有关?
以及如何从 Angular 序列化 KeyValue 以便我的网络服务器可以读取它?
你的对象应该是这样的:-
[
{
4: 0
},
{
5: 1
},
{
6: 2
}
]
我能够通过创建自己的 KeyValue Class 解决问题,如下所示:
public class KeyValue<K,V>
{
public K Key { get; set; }
public V Value { get; set; }
}
在此之后我的控制器方法现在看起来像这样:
[HttpPut("[action]")]
public ActionResult<bool> Sort([FromBody] IList<KeyValue<int, int>> dto)
{
return Ok(_aboutUsService.Sort(dto));
}
感谢这种方法,控制器能够通过 PUT 接收从 Angular 发送到我的网络服务器的键值数组...