【发布时间】:2013-06-29 00:13:40
【问题描述】:
我正在尝试调用 ASP.NET WebAPI 方法并通过类似于$.ajax POST 请求的 GET 请求将序列化的 JavaScript 对象传递给它。它工作正常,除了当 JavaScript 对象对 Networks 有一个 null 值时,它会在 URL 中发送它,如 /api/airings/get-airings?networks= 并且服务器将 string[] 显示为具有值为 null 的单个项目!如果我删除 network=,它会在服务器上显示为 null,正如我所期望的那样。
因此,似乎人们在 jQuery 中请求了有关此行为的票证,但我想知道在不使用插件或重写 $.param 逻辑或弄乱 WebAPI ModelBinder 的情况下我能做什么。
http://bugs.jquery.com/ticket/8653
http://bugs.jquery.com/ticket/1814
public class ApiGetAiringsRequest
{
public DateTime? DateStart { get; set; }
public DateTime? DateFinish { get; set; }
public string[] Networks { get; set; }
}
public HttpResponseMessage GetAirings([FromUri] ApiGetAiringsRequest request )
...
document.location.href = "/api/airings/get-airings?" + $.param(request);
【问题讨论】:
-
这看起来像一个错误。请在此处记录问题:aspnetwebstack.codeplex.com/workitem/list/basic
-
希望它会在下一个版本中修复并期待属性路由:-)
标签: c# javascript jquery asp.net-web-api