【发布时间】:2018-02-12 20:42:19
【问题描述】:
我正在尝试从 AJAX POST 向我的控制器发送一个数组。 我的要求:
var selected = [];
$('.unitsCheckBox:checked').each(function () {
selected.push($(this).val());
});
data = {
Units: selected
};
console.debug(data);
$.ajax(
{
url: "/PostVacancies/PostData",
type: "POST",
dataType: 'json',
data: JSON.stringify(data),
contentType: 'application/json; charset=utf-8',
success: function (result) {
console.debug(result);
},
error: function (xhr, status, p3, p4) {
console.debug(xhr);
console.debug(status);
console.debug(p3);
console.debug(p4);
}
});
调试显示数据变量中有选定的单位。
我的控制器:
[HttpPost]
public bool PostData(SelectedUnits Units)
{
return true;
}
SelectedUnits 方法:
public class SelectedUnits
{
public List<int> Units { get; set; }
}
我在return中设置了一个调试点查看Units参数数据,但始终为null。
有谁知道我做错了什么?
【问题讨论】:
-
尝试在控制器中添加
[FromBody] SelectedUnits Units。此外,不要将其包裹在data ={...}中,只需发送selected本身即可。 -
找不到类型或命名空间名称“FromBody”
-
确保您在顶部有
using Microsoft.AspNetCore.Mvc;。 -
我得到...无法安装包“Microsoft.AspNetCore.Mvc 2.0.2”。您正在尝试将此包安装到以“.NETFramework,Version=v4.5.2”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件
-
只能使用 [FromBody] 吗?我以为我可以以与班级相同的格式发送数据
标签: c# jquery asp.net ajax asp.net-mvc