我有一个可以启动未选中的单选按钮,但即使条件为false,它也会在html中写入checked属性并且浏览器显示已选中
@Html.RadioButton("radio", "1", new { @checked = (condition) })
@Html.RadioButton("radio", "2", new { @checked = (condition) })
答案 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
属性的存在意味着检查控件。因此,只有checked
或checked = ""
,甚至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)