我像这样使用RadioButtonFor
@Html.RadioButtonFor(m => m.Content,Model.Content,new { @name = "rb",@class = "answer-radio",@id = "answer-" + Model.Counter,@checked = "false" }) @Html.Label(Model.Content,new { @for = "answer-" + Model.Counter }) @Html.HiddenFor(m => m.Content)
但这个无线电按钮被“检查”了.我怎么能禁用它?
解决方法
你确定要一个单选按钮吗?好像你可能在CheckBox之后……
对于布尔值,我会像这样设置2个radiobuttons:
@Html.RadioButtonFor(m => m.Content,true,new { @id = "rb1" }) @Html.RadioButtonFor(m => m.Content,false,new { @id = "rb2" })
html帮助器将找出要检查的那个.如果Model.Content属于另一种类型,则对radiobuttons使用不同的值,MVC仍然会找出要检查的值.
编辑:
实际上,它甚至更简单.如果您使用Html帮助程序RadioButtonFor方法,它将检查radiobutton是否找到与Model属性匹配的值.因此,您已将RadioButton指定为始终具有与Model属性相同的值,因此将始终检查它(这将是将在表单中回发的值)
所以,如果你想要一个bool默认为false,并且只有在检查时才返回true,你可以这样做:
@Html.RadioButtonFor(m => m.Content,new { @id = "rb1" })
其中Content最初设置为false.
您也可以使用其他值类型.例如如果Content是一个字符串,最初设置为null,这将仅在选中单选按钮时回发“RadioButtonChecked”.否则为空:
@Html.RadioButtonFor(m => m.Content,"RadioButtonChecked",new { @id = "rb1" })