Я изо всех сил пытался найти решение этой проблемы.Post Array как контроллер 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 */ });
ИЛИ
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
}
Класс My 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 в контроллере? Как преобразовать эти данные в строго типизированный объект?
Большое спасибо
Как выглядит ваш Mark-класс в MVC? – Pbirkoff
@Pbirkoff Я уточнил вопрос с классом –
, этот вопрос, особенно первый ответ: http://stackoverflow.com/questions/4789481/post-an-array-of-objects-via-json-to-asp -net-mvc3 – Pbirkoff