我正在使用MVC kendo助手来显示一个具有远程数据源的网格。一切都按预期工作,直到我尝试将过滤器应用于几个日期的网格字段。
问题是,只要我应用过滤器,kendo网格就会将日期作为DateTime传递给服务器,但是,我在服务器中的域模型中的日期表示为DateTimeOffset,因此服务器会抛出一个异常,说明存在无法将DateTime转换为DateTimeOffset。
所以我正在寻找一种解决方法,因此客户端可以以正确的方式发送过滤器,因此MVC构建了DateTimeOffset。
现在客户端正在发送这样的过滤器:
sort:
page:1
pageSize:10
group:
filter:Timestamp~gte~datetime'2015-02-10T00-00-00'
我想而不是:Timestamp~gte~datetime'2015-02-10T00-00-00'应该是这样的:Timestamp~gte~datetimeoffset'2015-02-10T00-00-00'
提前谢谢!
答案 0 :(得分:0)
您有几种选择。
在服务器上创建自定义模型绑定器/类型转换器,将传入日期解析为DateTimeoOffset
在dataSource的传输中定义自己的parameterMap函数,它将以正确的格式准备值。或者使用内置函数来处理大部分工作并最终完成您的工作
最简单的方法是使用更新操作的数据功能发送附加数据。当然,您将为有效负载再创建一个字段,但您不需要为休息参数处理整个解析。在数据功能内部,您应该可以访问发送到服务器的模型,这样您就可以在适当的格式中轻松添加一个字段。
如果你想知道DateTimeOffset的格式是什么:
yyyy-MM-ddTHH:mm:ss+00:00