私はこの問題の解決策を見つけるのに苦労しています。
私のコードでは、オブジェクトの配列を構築しています。
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 */ });
2つ目の方法、投稿されたデータを見るとこんな感じ
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 が完全に間違っていますか? 投稿されたこのデータを厳密に型指定されたオブジェクトに変換するにはどうすればよいですか?
どうもありがとう