当前位置: 首页 > 面试题库 >

通过GET将JSON数组传递给MVC Web API

罗心思
2023-03-14
问题内容

我知道该主题有很多答案,但是找不到解决我问题的方法。我有一个如下所示的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);
        }
    });

然后,URL如下所示:

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);
        }
    });

网址:

https://localhost/supertext/api/v1/util/CountryList?idList=%5B46%2C14%2C62%2C83%2C120%5D

两种方法都不起作用。

我是否真的必须以字符串形式发送和接收它或使用POST?


问题答案:

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

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

public IList<Country> GetCountryList([FromUri] List<long> idList)
{
    ...
}

然后只需触发AJAX请求即可:

$.ajax({
    url: 'api/v1/util/CountryList',
    type: 'GET',
    data: { idList: [1, 2, 3] },
    traditional: true,
    success: function (result) {
        console.log(JSON.stringify(result));
    }
});

进一步建议您阅读有关Web API中的模型绑定如何工作的信息:

http://www.asp.net/web-api/overview/working-with-http/sending-html-form-
data,-part-1



 类似资料:
  • 问题内容: 我使用此javascript捕获flexigrid中选中的所有复选框,然后尝试将此行ID数组发送到CFC 低于CFC 当我尝试运行此函数时,我的服务器回答说,传递给removeCertidaoCRC函数的NUMSEQCERTIDAO参数不是数组类型。 我最近刚进入的一个延迟项目中的所有选项都用光了。 问题答案: jQuery可以很好地将数组分开发送,但是ColdFusion不能很好地处

  • 问题内容: 我正在尝试将字符串数组作为POST数据传递给PHP脚本,但是不确定该怎么做。 这是到目前为止我执行PHP脚本的代码: 我试图传递数组的地方: 调用PHP脚本: 以及相关的PHP脚本: 有任何想法吗?谢谢 ! 编辑 我正在尝试以下方法,但仍不满意: 这就是我所有的“错误报告” … 问题答案: 要将查询字符串中的数组传递给php,您应该添加到标识符并将每个项目都添加为单独的条目,因此这样的

  • 问题内容: 我想在PHP中操纵JavaScript数组。可以做这样的事情吗? 活动是一维数组,例如: 尝试此脚本时无法完成…如何解决? 问题答案: 而已!现在您可以在PHP中访问它:

  • 是否可以使用UI将项目数组传递到swagger块中的单个参数中?我在ruby\rails应用程序中使用它。请求类型是GET。 我有一个接受许多参数的搜索 API。所有这些都是单一值,但一个设施除外。它接受一个项目数组,并且可以使用类似于下面显示的 URL 进行调用(下面的示例显示了传递的两个值 1 和 2)。 我的参数是这样设置的: 当我在swagger中传递数组作为参数时,EG[1]会生成以下U

  • 问题内容: 我想将两个数组形式的java发送到oracle存储过程。第一个数组是字符串数组,第二个是字符数组,我怎样才能做到这一点? 问题答案: 这是一个如何做的例子。 以下脚本在数据库中设置表,类型和存储过程。该过程采用数组类型的参数,并将数组的每一行插入表中: 然后,Java代码演示如何将数组传递到此存储过程中: 如果先运行SQL脚本,然后运行Java类,然后查询表,则应该发现所有数据都已插入

  • 问题内容: 通过指令的属性将数组传递给指令时,我目前遇到问题。我可以将其读取为字符串,但是我需要将其作为数组,所以这是我想出的,但是不起作用。帮助任何人?提前 Javascript :: HTML :: 问题答案: 如果要从您的作用域访问此数组,即加载到控制器中,则只需传递变量名称即可: 指示: 模板: