我有一个场景,我需要将GET请求中的多个ProductCodes发送到我的Web API。在我的asp.net web api控制器中有一种方法可以使我的Action方法的参数为List<int> ProductCodes
类型。我假设不,我必须像?ProductCodes=a,b,c
那样传递它们,然后接受它作为ProductCodes
的字符串列表。如果有更好的方法,请告诉我。
我在代码端获取null
[HttpGet]
[ActionName("product-cache-deletion")]
public HttpResponseMessage ProductCacheDeletion(List<string> ProductCodeList) {
//...
}
我称之为
http://localhost:59956/api/manuals/product-cache-deletion?ProductCodeList=a,b,c
但每次ProductCodeList
答案 0 :(得分:1)
你可以尝试下面的方法,你可以传递多个值 多个参数很容易。希望它会对你有所帮助。
$.ajax({
type: "GET",
url: url,
contentType: "application/json; charset=utf-8",
dataType: "json",
data: { ProductCodes: "a,b,c" },// By this way you can pass multiple parameters too
success: function (rsp) {
}
});
答案 1 :(得分:1)
在请求中使用多个param,其中一个名称为ProductCodeList
答案 2 :(得分:0)
在您的操作中,设置[FromURI]属性,如下所示:
public HttpResponseMessage ProductCacheDeletion([FromUri] IEnumerable<string> ProductCodeList)
如果我没记错的话,我认为[FromUri]位是你得到空的主要原因 否则,您最终会在&#34; a,b,c&#34;列表中输入一个条目。
然后您的URL,您可以将每个邮政编码列表指定为单独的查询字符串参数,如下所示:
/product-cache-deletion?ProductCodeList=a&ProductCodeList=b&ProductCodeList=c
当我这样做时,我已经将参数称为我传入的单数版本,因此URL更直观地阅读。
答案 3 :(得分:0)
您可以使用[FromUri]属性强制api将查询字符串作为列表读取
StringColumn DateTimeExtracted
-------------------------------------------- -----------------
Bogdanel 01/02/2017 03:04 hei ho 01/02/2017 03:04
Georgel 05/06/2017 07:08 danga langa 05/06/2017 07:08
Suna'n asfintit 09/11/2018 11:22 hei talanga 09/11/2018 11:22
Danga langa. Pai da. NULL
NULL
NULL NULL
然后使用数组
中相同的参数名称foreach项调用api[HttpGet]
[ActionName("product-cache-deletion")]
public HttpResponseMessage ProductCacheDeletion([FromUri]List<string> ProductCodeList)
{
//...
}
详细了解属性here