私はこのようなオブジェクトを持っています:
var lot = { ID: 0, ... //various other attributes
SchemeInstanceList: [] }
作成後、SchemeInstanceList属性に次のような別の構造のオブジェクトを入力します。
lot.SchemeInstanceList.push({ ID: 0, LotID: 0, SchemeID: 18, LotPosition: 0})
ここまでは、すべて問題ありません。次に、lotオブジェクトをActionMethodに送信して、データベースエントリを作成します。
$.ajax({
url: "/Lots/CreateSchemes",
data: lot
});
public ActionResult CreateSchemes(LotModel lot) {
... //store lot in database
}
ActionMethodが呼び出され、lotの値が正しい場合、SchemeInstanceListにエントリがあります。ただし、これらのエントリの属性はすべてゼロであり、何が間違っているのかわかりません。
単一のリスト要素自体を渡すと、エントリは正しく表示されます。
$.ajax({
url: "/Lots/CreateScheme",
data: lot.SchemeInstanceList[0]
}
public ActionResult CreateScheme(SchemeInstanceModel scheme) {
... //do whatever
}
これで、SchemeID値は0ではなく18になります。
なぜこれが機能しないのですか?私が見逃している最も明白なことは何ですか?
編集:これが私のモデルです:
public class LotModel {
public int ID { get; set; }
... //various other properties
public List<SchemeInstanceModel> SchemeInstanceList { get; set; }
}
public class SchemeInstanceModel
{
public int ID { get; set; }
public int LotID { get; set; }
public int SchemeID { get; set; }
public int LotPosition { get; set; }
//public List<AttributeInstanceModel> AttributeInstanceList { get; set; }
}