MVC单选按钮始终传递虚假值

时间:2016-11-11 10:40:33

标签: asp.net-mvc

这是我使用的RadioButton的代码:

@Html.RadioButtonFor(model => model.A, new { @class = "radio-inline", @checked = "checked", id = "A" }, "Indicator")
@Html.Label("Active")
@Html.RadioButtonFor(model => model.A, new { @class = "radio-inline", @checked = "checked", id = "B" }, "Indicator")
@Html.Label("InActive")

这是模态

private bool a;
public bool A
{
    get
    {
       return a;
    }    
    set
    {
       a= value;
    }
}

1 个答案:

答案 0 :(得分:2)

RadioButtonFor()的第二个参数是值,第三个是htmlAttributes,因此您的代码正在生成

<input length="9" id="A" name="A" type="radio" value="{ class = radio-inline, checked = checked, id = A }" />

value属性需要truefalse才能绑定到bool(并注意无效的length="9"属性是因为那里在“指标”中有9个字符。

此外,不要尝试设置checked属性 - 该方法根据属性的值正确设置。并且您创建一个与按钮无关的<label>元素(单击它们将设置焦点)。

您的代码需要

<label>
    @Html.RadioButtonFor(model => model.A, true, new { @class = "radio-inline", id="" })
    <span>Active</span>
</label>
<label>
    @Html.RadioButtonFor(model => model.A, false, new { @class = "radio-inline", id="" })
    <span>InActive</span>
</label>

您还可以简化模型以仅使用

public bool A { get; set; }