到目前为止,我还没有找到一个好的解决方案。
我的javascript / jQuery,我尝试使用ajax发送数据。
var val = new Array();
$( ':checkbox:checked' ).each( function ( i )
{
console.log( $( this ).val() );
val[i] = $(this).val();
});
removeSelected(val);
function removeSelected(listOfStuff)
{
$.ajax({
url: '@(Url.Action("removeSelected"))',
type: 'POST',
data: { listOfStuff: listOfStuff },
dataType: 'json',
success: function ( return_data )
{
$( ":checkbox:checked" ).closest('tr').remove();
}
});
我的控制器。数组以null形式出现。
[HttpPost]
public bool removeSelected ( string[] listOfStuff )
{
//do stuff
}
有什么建议吗?
答案 0 :(得分:1)
您可以尝试traditional: true
引用的$.ajax({
url: '@(Url.Action("removeSelected"))',
type: 'POST',
traditional: true,
data: { listOfStuff: listOfStuff },
dataType: 'json',
success: function ( return_data )
{
$( ":checkbox:checked" ).closest('tr').remove();
}
});
建议,该建议来自in this answer,是:
一个布尔值,指示是否执行传统的“浅”序列化。
这种变化看起来像是:
var val = new Array();
$( ':checkbox:checked' ).each( function ( i )
{
console.log( $( this ).val() );
val[i] = $(this).val();
});
另外,我可以为您的代码提出一个小建议吗?我会改变这个:
var val = []; // use this array notation
$(':checkbox:checked').each(function ()
{
console.log($(this).val());
val.push($(this).val()); // use push() instead of an index
});
为:
{{1}}