我像这样使用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)
但是这个无线电按钮被“检查”了。我该如何禁用它?
答案 0 :(得分:5)
你确定要一个单选按钮吗?好像你可能在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, true, new { @id = "rb1" })
其中Content
最初设置为false。
您也可以使用其他值类型。例如如果Content是一个字符串,最初设置为null,仅当选中单选按钮时,才会回发"RadioButtonChecked"
。否则为空:
@Html.RadioButtonFor(m => m.Content, "RadioButtonChecked", new { @id = "rb1" })
答案 1 :(得分:0)
将“已选中”添加到属性列表将使其无论如何都会被检查。我会确保模型中的值为null或false。