【发布时间】:2018-04-17 05:13:11
【问题描述】:
我正在使用 html 复选框控件并将其与模型数据绑定,但是当我运行程序时,无论是否选中,我都看到 false 作为 checkbox 值传递。
在最后搜索谷歌时,我发现了一个代码 sn-p,它显示了如何使用 checkbox 和模型数据。
我的 HTML:
<input id="IsApproved" type="checkbox" value="true" name="IsApproved">
<input type="hidden" value="false" name="IsApproved">
我需要做什么来为具有相同名称的复选框创建一个隐藏字段,但复选框值我需要设置为 true,隐藏字段值我需要设置为 false。它工作,但我真的不明白它是如何工作的?
我只想知道当复选框是否被选中时,true 和 false 是如何传递给 action 方法的。
选中复选框时,复选框数据正在传递,但未选中时,隐藏字段数据正在传递....只是不了解该技术。我是MVC 的新手,我搜索谷歌以了解它是如何工作的,但没有找到任何结果。所以请有人告诉我true/false is passing 复选框是否被选中。
【问题讨论】:
-
它只是确保您获得 IsApproved 的值。当您选中该框时,它会发送 IsApproved 的两个值.. [true, false].. 活页夹获取第一个值列表并将其分配给属性..如果没有隐藏输入,则不会将任何内容传递给您的 IsApproved 操作,并且 IsApproved 的值将为 null..
-
@Html.CheckBoxFor非常简单,只要您不使用nullable<bool>dotnetfiddle.net/MAqhYq -
我来自网络表单背景,我们从不为每个复选框使用隐藏字段。当我们不使用隐藏字段时传递什么值?如果我们不使用隐藏字段,为什么正常的复选框值不会传递到服务器端?如果可能,请详细说明。
-
如果没有隐藏字段并且您没有选中该复选框,则不会向服务器传递任何内容。
标签: asp.net-mvc checkbox