单选按钮不反映模型的值

时间:2015-05-20 09:08:03

标签: kendo-ui radio-button kendo-grid kendo-asp.net-mvc radiobuttonfor

我有一个类的kendo Grid,对于那个类,我已经构建了一个编辑器模板,为其中一个字段生成一个单选按钮。

此单选按钮不反映属性的值,并且始终为false,虽然我已经通过在表单上打印来检查该值,但我确定它是true。如果我为该字段设置了默认值,则单选按钮将反映该值,而不管该字段的实际值。

我应该注意,我正在使用客户端模板显示该字段的文本,并且工作正常。

这是网格:

    @(Html.Kendo().Grid<Class>()
        .Name("Grid")
        .Columns(columns =>
        {
            columns.Bound(x => x.BActive).ClientTemplate("#= BActive ? 'Open':'Close' #");
/// removed for brevity
        })
        .Editable(editable => editable.Mode(GridEditMode.PopUp))
        .DataSource(ds => ds.Ajax()
            .Model(model => {
                model.Id(x => x.SWhCode);
                model.Field(x => x.BActive).DefaultValue(true);
            })
        )
    )

这是在editorTemplate

中产生单选按钮的行
<label>
   @Html.RadioButtonFor(x => x.BActive, true, new { @class = "radio-inline" }) Open
</label>
<label>
   @Html.RadioButtonFor(x => x.BActive, false, new { @class = "radio-inline" }) Close
</label>

1 个答案:

答案 0 :(得分:3)

bool类型将在客户端中呈现,如此

true => True
false => False

您是否尝试检查以HTML格式呈现的元素?您会看到bool值转换为大写string。要解决此问题,您应该在类型为true的单选按钮中更改falsestring

您的观看代码应该是这样的

<label>
   @Html.RadioButtonFor(x => x.BActive, "true", new { @class = "radio-inline" }) Open
</label>
<label>
   @Html.RadioButtonFor(x => x.BActive, "false", new { @class = "radio-inline" }) Close
</label>