获取MVC Controller参数中的Checkbox值

时间:2014-04-16 02:53:40

标签: asp.net-mvc-5

我的视图中有一个复选框,我将其作为参数发回给Controller,但是当选中该复选框时,控制器会将该值作为字符串“on”接收,并且当未选中时,参数中的值为“关闭”。有没有办法让这个值回发为int或bool?当我在下面尝试bool时,它总是为null,因为它与数据类型不匹配。

<label><input type="checkbox" name="option">food</label>


        public ActionResult Select(bool? option)
        {....

2 个答案:

答案 0 :(得分:0)

我想你需要使用Html复选框帮助程序来实现这一点,这对我来说似乎很愚蠢,因为它在你不使用帮助程序创建html时呈现并正常工作。

<label>@Html.CheckBox("option", false) food</label>

答案 1 :(得分:0)

您可以做的是将value属性添加到checkbox并将其设置为truefalse

MVT不会将option识别为真实

<input type="checkbox" name="option" checked="checked" />

但是如果你添加value="true"

<input type="checkbox" name="option" checked="checked" value="true" />

执行此操作的脚本:

$(document).on("click", "[type='checkbox']", function(e) {
        if (this.checked) {
            $(this).attr("value", "true");
        } else {
            $(this).attr("value","false");}
    });