リストにモデルバインド<>投稿JavaScriptのデータオブジェクト
-
18-09-2019 - |
質問
私は次のようにJavaScriptのデータオブジェクトを投稿しようとしています:
$.post(frm.attr("action"), data, function(res)
{
// do some stuff
}, "json");
'データ' の構造をとる。
data
- panelId
- siteId
- ConfiguredFactsheetId // this is an array of CheckBox ids that correspond to ConfiguredFactsheets
- 123
- 234
- 345
は、これにより、両方のサイト&パネルが正しくインスタンス化されると、そのデータを結合させたが、Listオブジェクトがnullます。
public JsonResult Edit(Site site, Panel panel, List<ConfiguredFactsheet> configuredFactsheets)
{
// do stuff
return Json(success);
}
さて、私は私の「データ」オブジェクトのConfiguredFactsheetIdプロパティは、ID値の単なる配列であることを認識しています。私は、それぞれの値は、私のConfiguredFactsheetオブジェクトのconfiguredFactsheetIdプロパティに対応するように指定する必要がありますか?もしそうなら、私のデータオブジェクトは、
にフォームsimilartを取りますdata
- panelId
- siteId
- ConfiguredFactsheet // this is an array of CheckBox ids that correspond to ConfiguredFactsheets
- ConfiguredFactsheetId:123
- ConfiguredFactsheetId:234
- ConfiguredFactsheetId:345
が、私はオブジェクトに新しいConfiguredFactsheetIdを追加するたびに、それだけで、以前のものを上書きしますので、これは明らかに動作しません。
私は、フォームのクエリ文字列を構築した場合、私はこれを行うことができます知っている。
"&ConfiguredFactsheet[i].configuredFactsheetId = " + configuredFactsheetId;
私は、単一のデータ・オブジェクトのすべてを含んでいたいのです。
任意の提案ですか?私はより明確に何も(おそらく、すべてを!)を説明する必要がありますか?
おかげ
デーブ
解決
最後に、これは働いています:
var valuesArray = objCheckBoxes.map(function()
{
return $.getAttributes($(this));
});
var obj = new Array();
$.each(valuesArray, function(item) { obj.push($(this)[0]); });
$.each(obj, function(i)
{
// basically I take the rule where you need to append
// the index to the type, and I apply it here.
data["configuredFactsheets[" + i + "].configuredFactsheetId"] = $(this).attr("configuredFactsheetId");
});
について読みます 他のヒント
の代替が投稿することです。
?myValues=1&myValues=2&myValues=3
とのIEnumerable
として、それを受け入れますpublic ActionResult DoSomething(IEnumerable<int> myValues) {
...
所属していません StackOverflow