【问题标题】:Javascript issue: Array of integers recieved as a string at the Web API controllerJavascript 问题:在 Web API 控制器上接收为字符串的整数数组
【发布时间】:2015-03-02 22:35:40
【问题描述】:

当我将属性设置为时,为什么在我的 web api 控制器中得到一个字符串

$("#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>

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

【问题讨论】:

标签: javascript jquery asp.net-mvc asp.net-web-api asp.net-web-api2


【解决方案1】:

尝试将值放在具有相同名称的 &lt;form&gt; 的单独元素中,而不是生成和数组,然后将整个数组内容作为元素的值,如果元素是 &lt;input type="hidden"&gt;在你的 cmets 中说你可以使用:

$("#ProfessionsCheckBoxes input:checked").each(function() { 
  $("form").append('<input type="hidden" name="SelectedProfessions" value="' + $(this).attr("Id") + '"></input>');
});

希望这会有所帮助,

【讨论】:

  • 我没有使用asp mvc的经验,你的SelectedProfessions元素是什么html类型?此信息可以帮助我重写答案以满足您的要求:)
  • 它是 html 中的隐藏字段。
  • 它和&lt;input type="hidden"&gt;?
  • 是的,
  • 我更新了我的答案,希望现在更准确:)。
【解决方案2】:

尝试将 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>

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

【讨论】:

    猜你喜欢
    • 2018-05-30
    • 1970-01-01
    • 2016-07-29
    • 2013-03-20
    • 2015-11-29
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 2016-01-03
    相关资源
    最近更新 更多