我正在尝试默认一个单选按钮进行检查。
<div>@Html.RadioButtonFor(m => m.IsActive, "OofDeactive", new { @class = "isActive", @checked="checked"})</div>
<div>@Html.RadioButtonFor(m => m.IsActive, "OofActive", new { @class = "isActive" })</div>
请注意,模型包含属性
public bool IsActive { get; set; }
我在这里找到了同样的问题,但对于MVC6虽然已经关闭了:https://github.com/aspnet/Mvc/issues/3098
这是一个问题还是我做错了什么?
答案 0 :(得分:1)
RadioButtonFor()
(与所有HtmlHelper
方法一样)通过绑定到您的属性的值及其确定选中哪个单选按钮的值来工作。
您的IsActive
属性为bool
,其中只有2个可能的值,true
和false
,并且无法绑定到string
且值为&#34 ; OofDeactive&#34;或者&#34; OofActive&#34;。将代码更改为
@Html.RadioButtonFor(m => m.IsActive, true, new { @class = "isActive", id = "" })
@Html.RadioButtonFor(m => m.IsActive, false, new { @class = "isActive", id = "" })
如果属性IsActive
的值为true
,则会选择第一个单选按钮,否则第二个单选按钮将被选中。
请注意,RadioButtonFor()
方法会生成重复的id
属性,因此请使用new { id = "" }
删除id
属性(或者在需要时为其提供唯一的id
出于其他目的)。设置checked
属性是没有意义的,因为它将被忽略。
答案 1 :(得分:0)
你能试试吗?
@{
var checked = Model.IsActive ? new {@checked = "checked"} : null;
var checked1 = checked == null ? new {@checked = "checked"} : null;
}
<div>@Html.RadioButtonFor(m => m.IsActive, "OofDeactive", checked)</div>
<div>@Html.RadioButtonFor(m => m.IsActive, "OofActive", checked1)</div>