嗨,我有像这样的json请求:
$.ajax({
url: "/DeviceUsage/FreeDevice",
type: "POST",
data: JSON.stringify({ data: Ids }),
error: function (data) {
alert("error " + data);
},
success: function (data) {
if (data === "") {
alert("succes")
}
else {
alert(data);
}
}
});
其中Ids = var Ids = new Array();
(充满整数)
我的Json看起来像这样:
{"data":[38,40,41]}
我收到Json的方法:
[HttpPost]
public JsonResult FreeDevice(FreeDeviceModel m)
{
return Json("");
}
和我的ViewModel:
public class FreeDeviceModel
{
public List<int> data { get; set; }
}
我用Json验证器Json2C#
交叉检查了所有内容并且eveything看起来是正确的,为什么FreeDevice方法没有提供任何东西?
为了澄清我有这个问题:
数据应该是3个元素的列表,但是为空
答案 0 :(得分:1)
检查以下代码是否有效
Json Call
var FreeDeviceModel = {};
FreeDeviceModel.data = new Array();
FreeDeviceModel.data[0] = 39;
FreeDeviceModel.data[1] = 40;
FreeDeviceModel.data[2] = 41;
var object = JSON.stringify({ FreeDeviceModel: FreeDeviceModel });
$.ajax({
type: "POST",
url: "/Home/FreeDevice",
contentType: 'application/json; charset=utf-8',
data: object,
dataType: 'json',
cache: false,
error: function (data) {
alert("error " + data);
},
success: function (data) {
if (data === "") {
alert("succes")
}
else {
alert(data);
}
}
});
控制器呼叫
[HttpPost]
public JsonResult FreeDevice(FreeDeviceModel FreeDeviceModel)
{
return Json("");
}
答案 1 :(得分:0)
您是否尝试将dataType设置为JSON
dataType: 'json',
data: {"data":[38,40,41]}
希望它有所帮助...
答案 2 :(得分:0)
确定。 添加此行:
contentType: "application/json; charset=utf-8",
修复了一切!
答案 3 :(得分:0)
你应该尝试这样的事情:
public JsonResult FreeDevice(string details)
{
FreeDeviceModel tempRecord = JsonConvert.DeserializeObject<List<FreeDeviceModel>>(details);
}
答案 4 :(得分:-1)
试试吧:
data: JSON.stringify(Ids),