Bootstrap开关返回“开/关”而不是“真/假”
Bootstrap有大量使用,很多人比我更聪明,所以我确定我要指出的问题是完全没有问题,我只是错了,但…… 。
我有一个表单,其中一个复选框使用bootstrapSwitch()
转换为开关
这是我的HTML
并且js:
$("#Resend").bootstrapSwitch();
这会在我的页面上生成一个整洁的自举切换开关。 该页面发布到ASP.NET MVC4控制器方法,该方法需要模型中的布尔值。
public class MyModel { public bool Resend { get; set; } }
当我发布此表单时,我的Resend
布尔值始终为false。 为什么? 因为bootstrap开关的值是on
而不是true
。
我不想将我的模型从布尔值更改为字符串,因此我不得不在jquery中截取post并将复选框的值更改为true
如果它已on
。 这似乎是我的倒退。 当然如果在复选框上使用bootstrapSwitch()
它应该产生true/false
而不是on/off
我错过了什么吗?
从HTML规范中 ,复选框的默认值为“on”,因为您没有包含value
属性
默认情况下/上
获取时,如果元素具有value属性,则必须返回该属性的值; 否则, 它必须返回字符串“on” 。 在设置时,必须将元素的value属性设置为新值。
把你的HTML改成
因此,如果选中它,则将在表单数据中发送值true
并正确绑定到您的boolean
属性(如果未选中,则不会发送任何值,并且该属性将是其默认值( false
)
我只是添加我的发现,在这个问题中添加更多的值。 我在剃刀视图上有以下代码
当表单发布时,ModelState在vaild上显示以下错误
值’value’对Assigned无效。
当我在checked属性之后移动value属性时,它开始工作
由此,我猜值属性的顺序也很重要。 如果我知道的话,请纠正我。
- asp.net mvc ajaxpost返回404未找到
- 如何使用JQuery Sortable从数据库中获取数据并将数据发回
- jQuery ajax在IE,Chrome和FF中工作……但不是Safari(使用MVC 4的服务器)
- 如何在MVC4 RazorView中实现Dropdownlist列表图像选择以及文本框
- ASP.NET Boilerplate JQuery没有进入.cshtml页面
- 在ASP.NET MVC 4中将jQuery 1.8.3更新为jQuery 1.9.0
- 如果在Ajax表单中使用,jQuery不显眼validation会忽略提交按钮上的“取消”类
- 使用JQuery 1.9的MVC不显眼validation无法正常工作
- 绑定事件处理程序未触发模式对话框按钮单击