私はこの問題を解決するために苦労しています。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
}
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が完全に間違っていますか?このデータを厳密に型指定されたオブジェクトに変換するにはどうすればよいですか?
多くのおかげ
MVCのMark-classはどのように見えますか? – Pbirkoff
@Pbirkoff私はクラス –
で質問を更新しました。この質問、特に最初の回答を確認してください:http://stackoverflow.com/questions/4789481/post-an-array-of-objects-via-json-to-asp -net-mvc3 – Pbirkoff