7

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

但是这个单选按钮是“选中的”。我怎样才能禁用它?

4

2 回答 2

5

你确定你想要一个单选按钮吗?好像你可能是在一个复选框之后......

对于布尔值,我会像这样设置 2 个单选按钮:

@Html.RadioButtonFor(m => m.Content, true, new { @id = "rb1" })
@Html.RadioButtonFor(m => m.Content, false, new { @id = "rb2" })

html 帮助器将确定要检查哪一个。如果Model.Content是另一种类型,请为单选按钮使用不同的值,MVC 仍会找出要检查的值。

编辑:

实际上,它甚至比这更简单。如果您使用 Html 辅助RadioButtonFor方法,它将检查单选按钮是否找到与 Model 属性匹配的值。因此,您已将 RadioButton 指定为始终与您的 Model 属性具有相同的值,因此将始终对其进行检查(这就是将在表单中发回的值)

因此,如果您希望 bool 默认为 false,并且仅在选中时返回 true,您可以这样做:

@Html.RadioButtonFor(m => m.Content, true, new { @id = "rb1" })

whereContent最初设置为 false。

您也可以使用其他值类型来执行此操作。例如,如果 Content 是一个字符串,最初设置为 null,则"RadioButtonChecked"只有在选中单选按钮时才会回发。否则为空:

@Html.RadioButtonFor(m => m.Content, "RadioButtonChecked", new { @id = "rb1" })
于 2013-06-20T22:06:31.190 回答
0

将“选中”添加到属性列表将使其无论如何都被选中。我会确保您的模型中的值为 null 或 false。

于 2013-06-20T21:38:14.547 回答