gpt4 book ai didi

c# - 具有可编辑枚举列的 Kendo MVC 网格

转载 作者:行者123 更新时间:2023-11-30 21:56:42 26 4
gpt4 key购买 nike

我有一个简单的模型,需要在 Kendo 的 MVC 网格组件中显示和编辑。

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(...) 中定义的 Controller 方法中收到更新的模型。

public virtual async Task<ActionResult> Update(
[DataSourceRequest] DataSourceRequest request,
MyModel myModel)

但是无论我做什么, Controller 中的 myModel 都有默认值 MyEnum。即使我只更改 MyEnum 设置为 SecondItem 的项目的 SomeProperty,它也将是 Controller 中的 FirstItem .这已通过查看 POST 请求得到验证,因此问题出在网格中的某处,而不是服务器上。

如何进行正确的数据绑定(bind)以确保 Kendo 发送正确的 MyEnum 值?

最佳答案

我遇到了同样的问题。您应该为 MyEnum 属性使用 EditorTemplate(Shared\EditorTemplates 文件夹中的 MyEnum.cshtml):

@model MyEnum

@(Html.Kendo().DropDownListFor(m => m)
.Name("MyEnum")
.BindTo(EnumHelper.GetSelectList(Model.GetType()))
.OptionLabel("Please select MyEnum"))

关于c# - 具有可编辑枚举列的 Kendo MVC 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31295395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com