【问题标题】:asp.net core 3.1 not binding array of integers to actionasp.net core 3.1没有将整数数组绑定到动作
【发布时间】:2020-05-06 15:17:12
【问题描述】:

我想将网页中的整数数组绑定到控制器操作。我已经尝试了 [FromQuery] 和 [FromBody] 的操作,但没有奏效。我已经在 ajax 配置上尝试了“传统:true”属性。我错过了什么?

$("#saveFavorites").on('click', function () {
    var values = $.map(favoritesDataTable.rows('.selected').data(), function (item) {
        return item[6]*1;
    });
    //console.log(ids);
    $.ajax({
        method: 'POST',
        url: '/Default/SaveFavoritesSelections',
        contentType: 'application/json; charset=utf-8',
        dataType: "json",
        data: JSON.stringify(values)
    });

});

这是我要绑定的控制器动作:

[HttpPost]
public IActionResult SaveFavoritesSelections(int[] values)

使用 Chrome 中的网络选项卡,我可以看到发布请求,并且有效负载包含带有正确 ID 的 JSON 对象。我可以在浏览器中看到它是 JavaScript 中的数字数组。

我认为问题在于 asp.net 没有绑定它们。为什么不?

【问题讨论】:

    标签: jquery asp.net-core asp.net-core-mvc


    【解决方案1】:

    如果目标控制器不是[ApiController],那么您必须在有效负载参数上使用[FromBody]

    [HttpPost]
    public IActionResult SaveFavoritesSelections([FromBody] int[] values)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-01
      • 2022-06-11
      • 1970-01-01
      相关资源
      最近更新 更多