MVC3 radiobutton表现得不像他们应该的那样

时间:2012-01-30 08:13:05

标签: asp.net-mvc-3

我有一个问题,开始让我发疯。我已将问题缩小到以下测试用例:

型号:

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,我会在发布表单后在表单和控制器中获得正确的值..

1 个答案:

答案 0 :(得分:1)

试试这样:

<td>
    Yes
    @Html.RadioButtonFor(m => m.TestBool, true)
</td>
<td>
    No
    @Html.RadioButtonFor(m => m.TestBool, false)
</td>