未经检查的单选按钮aspnet mvc

时间:2017-08-15 12:07:51

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

我有一个可以启动未选中的单选按钮,但即使条件为false,它也会在html中写入checked属性并且浏览器显示已选中

@Html.RadioButton("radio", "1", new { @checked = (condition) }) @Html.RadioButton("radio", "2", new { @checked = (condition) })

3 个答案:

答案 0 :(得分:1)

我认为正确使用将是

@Html.RadioButton("radio", "1",  (condition))

根据RadioButton ,单选按钮构造函数定义为

RadioButton(string name,Object value, bool isChecked)

将产生

<!-- isChecked is true. --> 
<input type="radio" name="name" value="value" checked="checked" />
<!-- isChecked is false. --> 
<input type="radio" name="name" value="value" />

我认为您正在尝试使用不需要的新htmlattribute。

答案 1 :(得分:0)

您用于@Html.RadioButton的重载采用HTML属性。指定checked = (condition)时,您要使用值指定属性checked

使用HTML输入时,不会将checked值设置为true或false。 checked属性的存在意味着检查控件。因此,只有checkedchecked = "",甚至checked = "false"都会导致检查控件。

另请参阅此相关问题:What's the proper value for a checked attribute of an HTML checkbox?

在你的情况下,你最好使用重载HtmlHelper.RadioButton Method (String, Object, Boolean),它允许你为是否检查控件指定一个布尔值。

答案 2 :(得分:0)

只需检查控制器上的状况并通过ViewBag提供布尔值

@ Html.RadioButton(“TestButton”,“Value”,(Boolean)ViewBag.DefaultValue)