我有一个问题,开始让我发疯。我已将问题缩小到以下测试用例:
型号:
public class TestModel
{
public bool TestBool { get; set; }
}
索引视图:
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@Html.Action("Test")
测试视图:
@model IEnumerable<Test_GUI.Models.TestModel>
@using (Html.BeginForm()) {
<table>
@Html.EditorForModel()
</table>
<input type="submit" value="OK"/>
}
编辑模板;
<tr>
<td>
Yes
@Html.RadioButtonFor(m => m.TestBool, Model.TestBool)
</td>
<td>
No
@Html.RadioButtonFor(m => m.TestBool, !Model.TestBool)
</td>
在TestController中,我创建了两个值为false的TestModel实例,并将它们传递给视图。但是radiobuttons被渲染为已检查,如果我发布表单,它们也会返回true。 我已经尝试了许多其他方式来显示radiobuttons,但似乎没有任何工作。这似乎是纠正这样做的方法。 我必须能够使用布尔值的当前值,所以我不能在视图中使用固定的true或false值。如果我使用固定的true / false,我会在发布表单后在表单和控制器中获得正确的值..
答案 0 :(得分:1)
试试这样:
<td>
Yes
@Html.RadioButtonFor(m => m.TestBool, true)
</td>
<td>
No
@Html.RadioButtonFor(m => m.TestBool, false)
</td>