jsonとjQuery .post関数を使用して、私たちのページからコントローラ(MVC 3)にオブジェクトのコレクションを送信しようとしています。以下は私たちのjsコードとコントローラとオブジェクトの定義です。
問題は、オブジェクトがコントローラに適切に送信されている間は、メンバ変数が設定されていないということです。 「Coord」リストには適切な数の「Coord」オブジェクトがありますが、各Coordオブジェクトのメンバ変数には、渡している値の代わりにゼロ(nullではない)が設定されています。スクリーンショットを参照してください:
我々の実装では?
ありがとうございます!
Coord1 = { "X": 100, "Y": 200 };
Coord2 = { "X": 300, "Y": 400 };
zoneData = { "Color": "#D8F834", "Name": "new zone", "Coords": [Coord1, Coord2] }
$.post("/Demo/SaveZone", zoneData, function (resp) {
alert(resp);
}, "json");
[HttpPost]
public ActionResult SaveZone(ZoneViewModel zvm)
{
Zone z;
z = AutoMapper.Mapper.Map<ZoneViewModel, Zone>(zvm);
_db.Zone.Attach(z);
_db.SaveChanges();
return View();
}
public class ZoneViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public string Color { get; set; }
public CoordViewModel[] Coords { get; set; }
}
public class CoordViewModel
{
public int Id { get; set; }
public int X { get; set; }
public int Y { get; set; }
}
あなたは、MVCのソースをダウンロードして、それへのプロジェクト参照を追加しますデフォルトのモデルバインディングコードを踏んでいますか? – redsquare
あなたはhttpsost本体をfirebug/fiddlerの中に表示することができます – redsquare