我的模型包含一个枚举,我想在通过 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 POST 上的过滤器请求正在处理Status~eq~'updated'
并返回Input string was not in a correct format
错误。
我删除了对数据源的过滤,并使用过滤控件来查看该请求是如何正常传递的,如下所示Status~eq~2
:
我尝试将过滤器值转换为整数(例如filter.Add(x => (int)x.Status).IsEqualTo((int)MyEnum.Updated)
),这会导致从模型到 Int32 的无效转换错误,这是 Add 方法所期望的。
这个问题可以使用 Razor 解决,还是 JavaScript 修复?