2012-12-17 18 views
2

我有一個控制器:正確的方式JSON數組發送到MVC4控制器動作

public virtual ActionResult CreateMultiple(int[] ids) 
{ 
... 
} 

在JS,我得到的所有選擇複選框,將是轉換成int數組:

var params = []; 
$("input:checkbox:checked.checkedPersons").each(function() { params.push($(this).val()); }); 
$("a.modalFormLink").attr("data-params", JSON.stringify({ "ids": params })); 

然後,一旦我點擊該鏈接,我所做的就是展示Fancybox的一個視圖...發送值爲data-params屬性víaqueryString Fancybox href:

... 
options.params = JSON.parse($(this).attr("data-params")); 
var query = $.toQueryString(options.params); 
... 

問題:好吧,如果我只有一個複選框被選中,這是可以工作的。如果我有不止一個,則活頁夾失敗,參數爲空。

數據-PARAMS屬性的內容是:

{"ids":["4","6"]} 

當我只有一個值(和作品)的內容是:

{"ids":["4"]} 

回答

3

我假設你正在使用AJAX撥打這個電話。

如果是這樣,嘗試添加

traditional: true 

到你的選擇在Ajax調用。

$.ajax({ 
url : 'someurl.com', 
traditional:true, 
data : someData 
}); 
+0

這個問題是更傳統的參數傳遞給ajax的方式......我們使用查詢字符串而不是數據參數。 QueryString可以很好地處理單個值......但不適用於數組。謝謝! – Romias

相關問題