我需要创建一个复选框并将模型绑定到复选框。假设代替模型值我只是将false指定为值。代码如下。
@Html.CheckBox("abcd",false)
输出:
<input id="abcd" name="abcd" type="checkbox" value="true" />
<input name="abcd" type="hidden" value="false" />
生成的HTML的输出如上所示。我明白为什么隐藏的复选框是由剃刀视图引擎放置的。我的问题是,如果值为false,则可见的复选框应为value="false"
(未选中)。
为何放置value="true"
(已选中)。同样适用于helper复选框。有什么问题或者你能解释一下如何实现这个吗?
答案 0 :(得分:3)
您应该考虑通过模型传递值:
@Html.CheckBoxFor(model => model.abcd)
如果需要将其设置为“false”,则可以在返回View之前通过在Controller中将abcd属性设置为false来执行此操作。
答案 1 :(得分:2)
复选框没有不同的已选中/未选中的值,它们只有一个选中的值。如果你理解为什么剃刀会输出隐藏的字段,那么你就明白了。
想象一下做的value='false'
。选中复选框后会发生什么?您是否期望价值发生变化? (提示:你不应该)。您已选中value='false'
复选框。那有什么意思?然后,在发布时,您会发布false
作为您的价值,这将是无稽之谈。
因此。复选框值属性不会更改。如果您需要编写使用该值的代码,请不要查找其值,查看是否已选中它。