目前我正在创建两个按钮并以这种方式设置所选值:
@if (Model.Test_Emne == null)
{
@Html.RadioButtonFor(x => x.Test_Emne, 1) <span>Ja</span>
<br />
@Html.RadioButtonFor(x => x.Test_Emne, 0) <span>Nej</span>
}
@if (Model.Test_Emne == true)
{
@Html.RadioButtonFor(x => x.Test_Emne, 1, new { @checked = "checked" }) <span>Ja</span>
<br />
@Html.RadioButtonFor(x => x.Test_Emne, 0) <span>Nej</span>
} else if (Model.Test_Emne == false)
{
@Html.RadioButtonFor(x => x.Test_Emne, 1) <span>Ja</span>
<br />
@Html.RadioButtonFor(x => x.Test_Emne, 0, new { @checked = "checked" }) <span>Nej</span>
}
我的页面上有很多单选按钮,所以我正在寻找一种方法来减少代码。
我也看到了:
Has anyone implement RadioButtonListFor<T> for ASP.NET MVC?
和
http://jonlanceley.blogspot.com/2011/06/mvc3-radiobuttonlist-helper.html
这是唯一的选择吗?
答案 0 :(得分:2)
以下似乎是实现相同目标的更短途径:
@Html.RadioButtonFor(x => x.Test_Emne, true) <span>Ja</span>
<br />
@Html.RadioButtonFor(x => x.Test_Emne, false) <span>Nej</span>
渲染视图时可能出现的情况:
Test_Emne = null
=&gt;没有检查任何无线电Test_Emne = true
=&gt;检查第一台收音机Test_Emne = false
=&gt;检查第二台收音机回发时可能出现的情况:
Test_Emne
属性将设置为null
Test_Emne
属性将设置为true
Test_Emne
属性将设置为false
更新:
这可以扩展到任何属性和任意数量的单选按钮。例如:
public string Foo { get; set; }
然后:
@Html.RadioButtonFor(x => x.Foo, "value1") <span>Foo 1</span>
@Html.RadioButtonFor(x => x.Foo, "value2") <span>Foo 2</span>
@Html.RadioButtonFor(x => x.Foo, "value3") <span>Foo 3</span>
@Html.RadioButtonFor(x => x.Foo, "value4") <span>Foo 4</span>
...
然后根据Foo属性的值,将选择相应的单选按钮。例如,如果您设置model.Foo = "value3";
,则将预先选择第三个无线电。