我的视图中有一个复选框,我将其作为参数发回给Controller,但是当选中该复选框时,控制器会将该值作为字符串“on”接收,并且当未选中时,参数中的值为“关闭”。有没有办法让这个值回发为int或bool?当我在下面尝试bool时,它总是为null,因为它与数据类型不匹配。
<label><input type="checkbox" name="option">food</label>
public ActionResult Select(bool? option)
{....
答案 0 :(得分:0)
我想你需要使用Html复选框帮助程序来实现这一点,这对我来说似乎很愚蠢,因为它在你不使用帮助程序创建html时呈现并正常工作。
<label>@Html.CheckBox("option", false) food</label>
答案 1 :(得分:0)
您可以做的是将value
属性添加到checkbox
并将其设置为true
或false
。
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");}
});