Kendo ui 带枚举的剑道网格过滤

Kendo ui 带枚举的剑道网格过滤,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我的模型包含一个枚举,当通过AJAX加载网格时,我希望对其进行过滤 .cshtml代码: @(Html.Kendo().Grid() .Name("Grid") .Columns(columns => { columns.Bound(x => x.Type); columns.Bound(x => x.Status); @*This is my enum*@ }) .Filt

我的模型包含一个枚举,当通过AJAX加载网格时,我希望对其进行过滤

.cshtml代码:

@(Html.Kendo().Grid()
    .Name("Grid")
    .Columns(columns =>
        {
            columns.Bound(x => x.Type);
            columns.Bound(x => x.Status); @*This is my enum*@
        })
    .Filterable()
    .DataSource(ds => ds
                        .Ajax()
                        .ServerOperation(true)
                        .Filter(filter => filter.Add(x => x.Status).IsEqualTo(MyEnum.Updated))
                        .Read(read => read.Action("QueryAlerts", "Alert"))))
AJAX帖子上的筛选器请求将作为
Status~eq~'updated'
传递,并返回一个
输入字符串格式不正确的错误

我删除了数据源上的筛选,并使用筛选控件查看该请求的正常传递方式,如下所示:
Status~eq~2

我已尝试将筛选器值强制转换为整数(例如,
filter.Add(x=>(int)x.Status).IsEqualTo((int)MyEnum.Updated)
),这将导致从模型向Int32强制转换无效错误,这是Add方法所期望的


这个问题可以用Razor解决吗?或者这是一个JavaScript修复程序?

您的x.Status是什么数据类型?如果它是int,则不需要强制转换它,只需枚举:

filter.Add(x => x.Status).IsEqualTo((int)MyEnum.Updated)