【发布时间】:2016-10-07 21:48:30
【问题描述】:
我想将一个空的 javascript 数组 [] 发布到 webAPI 并让它创建一个空的整数列表。我也想要它,所以如果我将 javascript null 发布到 webAPI,它会将 null 分配给整数列表。
JS:
var intArray = [];
$.ajax({
type: 'POST',
url: '/api/ListOfInts',
data: {'' : intArray},
dataType: 'json'
});
c#webapi
[HttpPost]
public void ListOfInts([FromBody]List<int> input)
问题 1) Jquery 拒绝发送数据{'' : []} 作为后有效载荷。只要我在数组中添加一些东西,它就会起作用,例如{'' : [1,2,3]}
问题 2) Passing empty js array to controller gives null 根据我读到的内容,即使我确实让它发布了一个空数组,它也会将列表初始化为空。讨论的解决方案有它,因此列表始终初始化为空,但我不希望这样。我希望它在某些情况下为空(当向其发送 null/undefined 时),当发送 [] 时,它应该初始化为空。
编辑:请参阅https://www.asp.net/web-api/overview/advanced/sending-html-form-data-part-1,了解我为什么使用{'' : []}
【问题讨论】:
-
您是否尝试仅发送数据:intArray ?
-
是的,它根本不起作用。 WebAPI 不知道如何处理它
-
在 WebApi 中,区分请求中的 null 和 empty 可能很困难。如果您正在使用它们以某种方式在您的应用程序中设置某种“状态”,我会重新考虑您是如何做到的。可能会发送某种标志或其他可以正确初始化服务器上的列表的东西。
标签: javascript c# jquery asp.net asp.net-web-api