Javascript问题:在Web API控制器上作为字符串接收的整数数组

Javascript问题:在Web API控制器上作为字符串接收的整数数组,javascript,jquery,asp.net-mvc,asp.net-web-api,asp.net-web-api2,Javascript,Jquery,Asp.net Mvc,Asp.net Web Api,Asp.net Web Api2,当我将属性设置为 $("#ProfessionsCheckBoxes input:checked").each(function() { professionsChecked.push($(this).attr("Id")); }); $("#SelectedProfessions").val(professionsChecked); SelectedProfessions是我的视图模型中的字符串列表。 如果我选中两个复选框 我在列表的0索引处进入控制器“2,3”,即:[0]=“2,3”

当我将属性设置为

$("#ProfessionsCheckBoxes input:checked").each(function() { 
professionsChecked.push($(this).attr("Id")); 
}); 
$("#SelectedProfessions").val(professionsChecked);
SelectedProfessions是我的视图模型中的字符串列表。 如果我选中两个复选框

我在列表的0索引处进入控制器“2,3”,即:
[0]=“2,3”
。不是像这样的列表:
[0]=“2”
[1]=“3”

注1: 这是我生成复选框的方式:

<div id="ProfessionsCheckBoxes" class="some item">
            <div class="form-group thirds">
                @if (Model.Professions != null)
                {
                    foreach (var item in Model.Professions)
                    {
                        <div class="one-third">
                            @Html.Label(item.Name)
                            @Html.CheckBox(item.Name, item.IsChecked, new {id = item.Id})
                        </div>
                    }
                }
            </div>
        </div>

@如果(Model.Professions!=null)
{
foreach(模型中的var项目)
{
@Html.Label(item.Name)
@复选框(item.Name,item.IsChecked,new{id=item.id})
}
}

注2:我使用form.serialize()方法通过ajax调用提交表单

尝试将值以相同的名称放入
的单独元素中,而不是生成和数组,然后将整个数组内容作为元素的值,如果元素是
,如您在注释中所述,您可以使用:

$("#ProfessionsCheckBoxes input:checked").each(function() { 
  $("form").append('<input type="hidden" name="SelectedProfessions" value="' + $(this).attr("Id") + '"></input>');
});
$(“#ProfessionScheckBox输入:选中”).each(函数(){
$(“表格”)。附加(“”);
});

希望这能有所帮助,

尝试在HTML中编辑输入的名称,例如:

<form method="get">
    <input type="checkbox" name="options[]" value="Politics"/> Politics<br/>
    <input type="checkbox" name="options[]" value="Movies"/> Movies<br/>
    <input type="checkbox" name="options[]" value="World "/> World<br/>
    <input type="submit" value="Go!" />
</form>

政治
电影
世界

请注意选项后面的数组括号。

这不是发布数组的正确方法,默认模型绑定器无法理解。检查此项我没有asp mvc的经验,您的
SelectedProfessions
元素是什么html类型?此信息可以帮助我重新编写答案以符合您的要求
:)
这是html中的一个隐藏字段。它是和
?是的,我更新了我的答案,希望现在答案更准确
:)