C# 如何将对象数组传递到$http.get参数
我有一个叫做“ReferenceNumber”的对象。参考号有“编号”和“类型” javascript对象如下所示:C# 如何将对象数组传递到$http.get参数,c#,angularjs,C#,Angularjs,我有一个叫做“ReferenceNumber”的对象。参考号有“编号”和“类型” javascript对象如下所示: { "type" : "" "number" : "" } [HttpGet] [Route(@"")] public HttpResponseMessage MyMethod([FromUri]List<ReferenceNumber> refNumbers) { ... } 我需要将这些“参考编号”的列表发送到C#System.We
{
"type" : ""
"number" : ""
}
[HttpGet]
[Route(@"")]
public HttpResponseMessage MyMethod([FromUri]List<ReferenceNumber> refNumbers)
{
...
}
我需要将这些“参考编号”的列表发送到C#System.Web.Http.ApiController。我的方法如下所示:
{
"type" : ""
"number" : ""
}
[HttpGet]
[Route(@"")]
public HttpResponseMessage MyMethod([FromUri]List<ReferenceNumber> refNumbers)
{
...
}
但如果需要,我愿意使用jQuery.param或JSON.stringify。或:
$http.get("MYURL", {params: {refNumbers: referenceNumbers}});
或者别的什么。但无论我尝试这些东西的哪种组合,包括硬编码,我似乎都无法将列表发送过来。我可以得到一个空列表,一个空列表,或者一个列表中的项目的编号和类型属性为空,但是我不能得到我的数据
如何正确发送此数据?发送一个列表难道还没有完成吗?如果是的话,为什么不能接受一份清单?我应该将列表打包到对象中吗?我必须使用[FromBody]而不是[FromUri]并将我的数据强制放在那里吗?您的问题现在可能已经解决了,但我将为将来可能遇到这个问题的人发布我的发现 建议使用
$httpParamSerializerJQLike
param序列化程序。对我来说,这是我的C#后端理解参数是一个复杂对象数组的唯一方法
因此,在这种特定情况下,您必须:
$http.get("MYURL", {params: {refNumbers: referenceNumbers}, paramSerializer: '$httpParamSerializerJQLike'});
我知道,但不知道。您希望ASP服务将什么作为查询字符串?i、 e.如果您必须手动输入URL以使用2个参考号调用此服务,您会键入什么?对不起,我可能有错误的标记。它是一个System.Web.Http ApiController。我将尝试修复标记。“ReferenceNumber”是ReferenceNumber对象的列表,而不是单个对象。列表中的每个对象都有一个名称和类型属性。请尝试执行以下操作:
{params:referenceNumbers}
。。。。那么url将是?number=123&type=sometype
,请参见上面的注释。我需要这些对象的列表,而不仅仅是一个对象。