【发布时间】:2012-04-17 23:03:10
【问题描述】:
我一直在努力寻找解决这个问题的方法。
在我的代码中,我正在构建一个对象数组;
var $marks = [];
var mark = function ( x, y, counter ){
this.x = x;
this.y = y;
this.counter = counter;
}
$marks.push(new mark(1, 2, 0));
$marks.push(new mark(1, 2, 1));
$marks.push(new mark(1, 2, 2));
现在我想将此数据发布到 MVC 控制器,因此我认为控制器中的数据类型将是 List<Mark> Marks 或 Marks 数组。
要发布数据,我试过了;
var json = JSON.stringify($marks);
$.post('url', json).done(function(data){ /* handle */ });
或
var json = { Marks: $marks };
$.post('url', json).done(function(data){ /* handle */ });
第二种方式,在查看发布的数据时,看起来像这样
Marks[0][x]: 1
Marks[0][y]: 2
Marks[0][counter]: 0
Marks[0][x]: 1
Marks[0][y]: 2
Marks[0][counter]: 1
Marks[0][x]: 1
Marks[0][y]: 2
Marks[0][counter]: 2
但我不知道如何将其转换为控制器中的强类型对象?
我的控制器看起来像这样;
[HttpPost]
public ActionResult JsonSaveMarks(List<Mark> Marks){
// handle here
}
我的 Mark 类看起来像这样;
public class Mark{
public string x { get; set; }
public string y { get; set; }
public string counter { get; set; }
}
我已经阅读了有关创建自定义 JsonFilterAttribute 或使用 System.Web.Script.Serialization.JavaScriptSerializer 类的其他类似问题,但我无法解决任何问题
我在这里有什么明显的遗漏吗?我把控制器中的 DataType 弄错了吗?如何将发布的这些数据转换为强类型对象?
非常感谢
【问题讨论】:
-
你在 MVC 中的 Mark-class 是什么样子的?
-
@Pbirkoff 我已经用班级更新了问题
-
查看这个问题,尤其是第一个答案:stackoverflow.com/questions/4789481/…
标签: c# asp.net-mvc json asp.net-mvc-4