C# Kendo数据源请求序列化和反序列化无效
为了向webapi发送kendo数据源请求,我将kendo数据源请求序列化为字符串,以便在webapi中应用过滤和排序操作。但是当反序列化字符串到dataSourcerequest时,我得到的错误是“预期的令牌” 控制器:C# Kendo数据源请求序列化和反序列化无效,c#,kendo-asp.net-mvc,C#,Kendo Asp.net Mvc,为了向webapi发送kendo数据源请求,我将kendo数据源请求序列化为字符串,以便在webapi中应用过滤和排序操作。但是当反序列化字符串到dataSourcerequest时,我得到的错误是“预期的令牌” 控制器: public ActionResult GetGridData([DataSourceRequest] DataSourceRequest request) { //converting object to string string jsonStr
public ActionResult GetGridData([DataSourceRequest] DataSourceRequest request)
{
//converting object to string
string jsonStr = JsonConvert.SerializeObject(request);
}
public ActionResult GetGridData(string request)
{
//converting string into object
string jsonStr = JsonConvert.DeSerializeObject<DataSourceRequest>(request);
//Here error is throwing as "Expected Token"
}
Web api:
public ActionResult GetGridData([DataSourceRequest] DataSourceRequest request)
{
//converting object to string
string jsonStr = JsonConvert.SerializeObject(request);
}
public ActionResult GetGridData(string request)
{
//converting string into object
string jsonStr = JsonConvert.DeSerializeObject<DataSourceRequest>(request);
//Here error is throwing as "Expected Token"
}
公共操作结果GetGridData(字符串请求)
{
//将字符串转换为对象
字符串jsonStr=JsonConvert.DeSerializeObject(请求);
//此处错误作为“预期令牌”抛出
}
数据源请求:
{Page:1,PageSize:10,排序:[],过滤器:{[{“值”:“事故响应费用法”,“操作员”:“eq”,“字段”:“subTopic”}],“逻辑”:“或”}}}
目前Telerik不支持序列化数据源请求。此类在类内部实现接口,防止类被序列化
我能想到的最好的处理方法是创建一个自定义类,该类将DataSourceRequest转换为一个自定义Serialisbe类。这还需要包含一个函数,将自定义类转换回DataSourceRequest Telerik类
当前有此功能的请求。
请在此处投票,尝试让Telerik实现此功能:
只需将数据作为查询字符串传递即可 以你的角度
const queryStr = `${toDataSourceRequestString(gridState)}`;
return this._http
.post(`${url}?${queryStr}`)
在您的webapi中
using Kendo.Mvc.UI;
using System.Web.Http.ModelBinding;
public ActionResult GetGridData([ModelBinder(typeof(WebApiDataSourceRequestModelBinder))] DataSourceRequest request)
{
}
您可以发布请求字符串的内容和DataSourceRequest的结构吗。@Thangadurai请检查更新的应答,同时发布DataSourceRequest类。您的JSON内容看起来无效。最后有一个额外的}。这只是复制粘贴错误,DataSourceRequest是kendo类