Jquery 通过GET将JSON数组传递给MVCWebAPI

Jquery 通过GET将JSON数组传递给MVCWebAPI,jquery,asp.net-mvc,json,asp.net-web-api,Jquery,Asp.net Mvc,Json,Asp.net Web Api,我知道这个话题有很多答案,但是我找不到解决问题的方法。 我有一个ASP.NET MVC Web API,如下所示: [HttpGet] public IList<Country> GetCountryList(List<long> idList) $.ajax({ dataType: "json", data: JSON.stringify({idList: listOfIds}),

我知道这个话题有很多答案,但是我找不到解决问题的方法。 我有一个ASP.NET MVC Web API,如下所示:

    [HttpGet]
    public IList<Country> GetCountryList(List<long> idList)
    $.ajax({
        dataType: "json",
        data: JSON.stringify({idList: listOfIds}),            
        type: "GET",
        url: "api/v1/util/CountryList",
        success: function (result) {
            alert(result);
        }
    });
https://localhost/supertext/api/v1/util/CountryList?{%22idList%22:[46,14,62,83,120]}
URL如下所示:

    [HttpGet]
    public IList<Country> GetCountryList(List<long> idList)
    $.ajax({
        dataType: "json",
        data: JSON.stringify({idList: listOfIds}),            
        type: "GET",
        url: "api/v1/util/CountryList",
        success: function (result) {
            alert(result);
        }
    });
https://localhost/supertext/api/v1/util/CountryList?{%22idList%22:[46,14,62,83,120]}
备选方案:

    $.ajax({
        dataType: "json",
        data: {
            idList: JSON.stringify(listOfIds),
        }          
        type: "GET",
        url: "api/v1/util/CountryList",
        success: function (result) {
            alert(result);
        }
    });
网址:

两种方法都不起作用


我真的必须将其作为字符串发送和接收还是使用POST?

不,不要尝试在GET请求中发送JSON。将JSON与其他具有主体的动词一起使用,例如POST和PUT

通过使用
[FromUri]
属性装饰动作参数,以标准方式执行此操作:

public IList<Country> GetCountryList([FromUri] List<long> idList)
{
    ...
}
关于Web API中的模型绑定如何工作的进一步推荐阅读:


**以下是两个参数Enum和objSearch**

var Enum=“ABCD”

//这是ajax方法

$.ajax({

//此部分是web api部分

[HttpGet]

公共IHttpActionResult获取([FromUri]字符串枚举,[FromUri]字符串objSearch) {

IHttpActionResult操作=空; 返回动作


}

谢谢!如果我硬编码数据:{idList:[1,2,3]},这就行了,但如果我使用数据:JSON.stringify({idList:listOfIds}),这就不行了,但是为什么要字符串化呢???不要
JSON.stringify
任何东西!我已经告诉过你,在我的回答中不要将JSON与GET请求一起使用。你的请求应该是这样的:
data:{idList:listOfIds}
。显然,我假设
listOfIds
是一个javascript数字数组。对不起,理解所有这些需要花费一些时间。现在开始工作!非常感谢。
   type: "GET",
   var GatwayUrl ='http//2937/' (//Your url)
   url: GatwayUrl + 'api/Certificate/GetDetail/?Enum=' + Enum +'+&objSearch='+ JSON.stringify(objSearch),
   contentType: "application/json; charset=utf-8",
   dataType: "json",
   success: function (result) {
     if (result) {
        alert("Your Code");    
        }       }
});