[英]IEnumerable array is always null…WebAPI
我正在建立一個用逗號分隔的字符串,並將其傳遞給我的WebAPI方法,如下所示:
var projectids="";
for (var i = 0; i < chk.length; i++) {
projectids += chk[i].VMIProjectId + ",";
}
//projectids = "1,2,3"
$.ajax({
type: 'POST',
url: "http://localhost:52555/device/6/AddProjectsToDevice",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: JSON.stringify(projectids),
success: function (msg) {
},
error: function (data) {
debugger;
}
});
我已經成功到達WebApi方法,但是我的IEnumerable數組projectIds始終為null。 方法如下:
[HttpPost]
[Route("device/{deviceId}/AddProjectsToDevice")]
public IEnumerable<VMI_DeviceLinkedProject> AddProjectsToDevice([FromUri]long deviceId,[FromBody] IEnumerable<long> projectIds){}
如何將逗號分隔的ID列表傳遞給WebAPI方法? 謝謝閱讀
現在,您的控制器操作獲取的是逗號分隔的數字字符串,而不是JSON數組( "[1,2,3,4]"
),這就是模型綁定器不起作用的原因:
var projectids = [];
for (var i = 0; i < chk.length; i++) {
projectids.push(chk[i].VMIProjectId);
}
然后,字符串化數組應正確綁定到IEnumerable<long>
。
除了將其作為csv值傳遞之外,您還可以使用以下相同的代碼將其作為數組傳遞,
var projectIdList =[];
for (var i = 0; i < chk.length; i++) {
projectIdList.push(chk[i].VMIProjectId);
}
同樣,將api方法中的參數名稱也更改為projectIdList並將其傳遞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.