RadioButton会自动检查

时间:2013-06-20 19:39:41

标签: c# asp.net-mvc-4 radio-button

我像这样使用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)

但是这个无线电按钮被“检查”了。我该如何禁用它?

2 个答案:

答案 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。