C# 如何将对象数组传递到$http.get参数

C# 如何将对象数组传递到$http.get参数,c#,angularjs,C#,Angularjs,我有一个叫做“ReferenceNumber”的对象。参考号有“编号”和“类型” javascript对象如下所示: { "type" : "" "number" : "" } [HttpGet] [Route(@"")] public HttpResponseMessage MyMethod([FromUri]List<ReferenceNumber> refNumbers) { ... } 我需要将这些“参考编号”的列表发送到C#System.We

我有一个叫做“ReferenceNumber”的对象。参考号有“编号”和“类型”

javascript对象如下所示:

{
    "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
,请参见上面的注释。我需要这些对象的列表,而不仅仅是一个对象。