我一直在努力尋找解決此問題的方法。將數組作爲JSON傳遞給MVC控制器
在我的代碼中,我構建了一個對象的數組;
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
或標記的數組。
要發佈數據,我試過了;
var json = JSON.stringify($marks);
$.post('url', json).done(function(data){ /* handle */ });
OR
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
}
我的馬克班看起來像這樣;
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 2012-04-04 08:52:45
@Pbirkoff我已更新與類 – 2012-04-04 08:55:13
檢查此問題,尤其是第一個答案的問題:http://stackoverflow.com/questions/4789481/post-an-array-of-objects-via-json-to-asp -net-mvc3 – Pbirkoff 2012-04-04 09:03:47