2015-05-11 27 views
0

我有用於創建將檢查複選框集合存儲爲數組的存儲的JQuery代碼。該數組作爲隱藏字段的值存儲在我的表單中,其ID爲「CheckedSubGroups」。 隱藏字段已經被賦予了列表的名稱來自我的控制器:將Js數組序列化爲MVC模型集合時出錯

型號:

public IList<int> SubtGroupPkids { get; set; } 

隱藏字段的形式:

<input type="hidden" id="CheckedSubGroups" name="SubGroupPkids" value="[]" /> 

JQuery的添加項目到陣列。

$(".SubGroupCheckBoxes").on("click", function() { 
      if ($(this).is(':checked')) { 
       var subGroupArray = JSON.parse($("#CheckedSubGroups").val()); 
       subGroupArray.push($(this).attr('data-subGroupPkid')); 
       $("#CheckedSubGroups").val(JSON.stringify(subGroupArray)); 

如果我添加幾個項目的這個數組類似(從調試器):

[15330,16657] 
[prototype]: [] 
length: 2 
[0]: "15330" 
[1]: "16657" 

然後我使用jQuery的.serialize方法序列化的形式。

但是,我得到一個綁定錯誤,它無法將數組轉換爲列表。

The value '["15330","16657"]' is not valid for SubGroupPkids. 

我哪裏錯了?

+0

我認爲它實際上是'IList的 SubGroupPkids'而不是'IList的 SubtGroupPkids' –

回答

1

您將需要反序列化JSON數組在控制器

var deserializer = new JavaScriptSerializer(); 
subGroupPkIds = deserializer.Deserialize<List<int>>(serializedData "data submitted to your controller");