RadioButtonFor ヘルパーの使用に問題があります。渡された値が true の場合、どちらのラジオ ボタンにも「チェック」が表示されません。値が false の場合、問題なく動作します。
私が取り組んでいるプロジェクトからこのコードをコピーしてサンプル アプリケーションを作成したところ、問題を再現することができました。値を true または false にハードコーディングすると動作するように見えますが、「!string.IsNullOrEmpty(allgroups)」を使用すると動作しません。
ビューから:
<div>
@Html.RadioButtonFor(m => m.AllGroups, true) All Groups
@Html.RadioButtonFor(m => m.AllGroups, false) Current Groups
</div>
ViewModel から:
public bool AllGroups { get; set; }
コントローラーから:
public ActionResult Index(string allgroups)
{
var model = new ProgramGroupIndexViewModel
{
AllGroups = !string.IsNullOrEmpty(allgroups)
};
return View(model);
}
IE のビュー ソースから:
<div>
<input id="AllGroups" name="AllGroups" type="radio" value="True" /> All Groups
<input id="AllGroups" name="AllGroups" type="radio" value="False" /> Current Groups
</div>
AllGroups の値が false の場合のビュー ソースから (動作することに注意してください):
<div>
<input id="AllGroups" name="AllGroups" type="radio" value="True" /> All Groups
<input checked="checked" id="AllGroups" name="AllGroups" type="radio" value="False" /> Current Groups
</div>