【发布时间】:2015-09-26 12:35:22
【问题描述】:
我有一个简单的模型,需要在 Kendo 的 MVC Grid 组件中显示和编辑。
public class MyModel
{
public int Id {get; set;}
public string SomeProperty {get; set;}
public MyEnum MyEnum {get; set;}
}
public enum MyEnum
{
FirstItem = 1,
SecondItem = 2,
ThirdItem = 3
}
我的网格设置如下:
@(Html.Kendo()
.Grid<MyModel>()
.Name("grid").Columns(columns =>
{
columns.Bound(o => o.SomeProperty).Width(200);
columns.Bound(o => o.MyEnum).Width(200);
columns.Command(command =>
{
command.Edit().Text("Edit");
}).Width(220);
})
.Editable(editable => editable.Mode(GridEditMode.InLine))
.DataSource(dataSource => dataSource
.Ajax()
.Batch(false)
.ServerOperation(false)
.Model(model =>
{
model.Id(p => p.Id);
model.Field(p => p.SomeProperty);
model.Field(p => p.MyEnum);
})
.Create(...) // removed for confidentiality
.Read(...)
.Update(...)
.Events(...)
).Filterable()
.Sortable())
执行编辑命令后,我在Update(...) 中定义的控制器方法中收到更新的模型。
public virtual async Task<ActionResult> Update(
[DataSourceRequest] DataSourceRequest request,
MyModel myModel)
但是无论我做什么,控制器中的myModel 的默认值都是MyEnum。即使我只更改将MyEnum 设置为SecondItem 的项目的SomeProperty,它也会在控制器中为FirstItem。这已通过查看 POST 请求得到验证,因此问题出在网格中的某处,而不是服务器上。
如何进行正确的数据绑定以确保 Kendo 发送正确的MyEnum 值?
【问题讨论】:
标签: c# asp.net kendo-ui kendo-grid kendo-asp.net-mvc