【发布时间】:2013-12-07 13:16:21
【问题描述】:
我遇到了一个问题,我似乎无法将这些数据从 jquery 正确传递到 web api。
这是我的 javascript 代码:
var chartRequestParams = [
{ QueueMode: "Investigations", DataMode: "items_completed" },
{ QueueMode: "Investigations", DataMode: "items_completed_avg_age" },
{ QueueMode: "Investigations", DataMode: "active_items" }
];
$.post('/api/dashboard/GetActiveAgeChart', chartRequestParams, function (data) { });
这是我的 Web API 代码:
[HttpPost]
public List<HighChartsResponse> GetActiveAgeChart(List<ChartRequestParam> chartRequestParams)
{ .....continued....
上面的方法都进不去
这是我的“模型”
public class ChartRequestParam
{
public ChartRequestParam()
{
this.QueueMode = string.Empty;
this.DataMode = string.Empty;
}
public string QueueMode { get; set; }
public string DataMode { get; set; }
}
我已经尝试了很多此代码的变体,但都没有成功。基本上我只是想将一个列表发布到 web API 方法。
我收到一个 500 服务器错误,如果我在“GetActiveAgeChart”方法中设置断点,它甚至不会命中它。
【问题讨论】:
-
只是一个盲注,但是您是否尝试过将 webapi 方法参数设置为数组,而不是列表? (和/或在参数上使用
[ModelBinder]) -
两者都试过了 - 将它作为一个没有模型绑定器的数组尝试它没有命中方法,将它作为一个带有模型绑定器的数组尝试它命中方法但数组为空。
-
带有列表的模型绑定器,也许吧? (再次,只是盲目射击)
-
是的,我也试过了——哈哈——我试过很多变种,就是不行=(
标签: c# jquery asp.net asp.net-web-api