Kendo DataSource请求序列化和反序列化不起作用

时间:2018-02-07 05:06:28

标签: c# kendo-asp.net-mvc

要向webapi发送kendo数据源请求,我已将kendo dataSourcerequest变为字符串,以便在webapi中应用过滤器和排序操作。但是当将字符串deseralizing到dataSourcerequest时,我得到的错误是“令人期待的”

控制器:

outline: none;

网址:

public ActionResult GetGridData([DataSourceRequest] DataSourceRequest request)
{
      //converting object to string
      string jsonStr = JsonConvert.SerializeObject(request);
}

DataSourceRequest: public ActionResult GetGridData(string request) { //converting string into object string jsonStr = JsonConvert.DeSerializeObject<DataSourceRequest>(request); //Here error is throwing as "Expected Token" }

2 个答案:

答案 0 :(得分:0)

当前,Telerik不支持序列化DataSourceRequest。此类在类内部实现接口,从而防止类被序列化。

我认为处理此问题的最佳方法是创建一个自定义类,该类会将DataSourceRequest转换为自定义serialisabe类。这还需要您包含一个将自定义类转换回DataSourceRequest Telerik类的函数。

当前对此功能有要求。 请在这里投票以尝试使Telerik实施此功能: http://kendoui-feedback.telerik.com/forums/127393-kendo-ui-feedback/suggestions/17207828-serialization-support-of-datasourcerequest-and-app

答案 1 :(得分:0)

只需将数据作为查询字符串传递

以你的角度

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)
   {
   }
相关问题