单选按钮不反映模型的价值
Radio Button doesn't reflect Model's value
我有一个 kendo 网格用于 class,为此 class 我构建了一个编辑器模板来为其中一个字段生成单选按钮。
此单选按钮不反映属性的值,它始终是 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>
bool
类型将在客户端中像这样呈现
true => True
false => False
您是否尝试检查在 HTML 中呈现的元素?您会看到 bool
值转换为大写 string
。要克服这个问题,您也应该在类型为 string
的单选按钮中更改 true
和 false
。
你的视图代码应该是这样的
<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>
我有一个 kendo 网格用于 class,为此 class 我构建了一个编辑器模板来为其中一个字段生成单选按钮。
此单选按钮不反映属性的值,它始终是 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>
bool
类型将在客户端中像这样呈现
true => True
false => False
您是否尝试检查在 HTML 中呈现的元素?您会看到 bool
值转换为大写 string
。要克服这个问题,您也应该在类型为 string
的单选按钮中更改 true
和 false
。
你的视图代码应该是这样的
<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>