0

有没有人使用带有 CodeFluent 实体 (www.softfluent.com) 生成的 MVC 解决方案的 Kendo UI Grid 控件?我遇到了一个障碍,试图返回 Grid 处理 AJAX 所需的 JSON 结果,我想知道是否有经验丰富的开发人员设法克服了这个问题。

谢谢。

4

1 回答 1

1

这篇文章很旧,但对于遇到障碍的其他人来说,这是我在遇到一些困难后如何让 Telerik 的 ASP.NET MVC 网格(几乎是 Kendo UI 网格)与 CodeFluent 一起工作的方法。

导入命名空间:

using CodeFluent.Runtime.Utilities;
using Kendo.Mvc.UI;
using Kendo.Mvc.Extensions;
...

然后,在您的读取方法中,您现在需要:

  1. 将您的 CodeFluent 对象集合加载到列表中。
  2. 将 CodeFluent 对象集合转换为 kendo 数据源。
  3. 使用 CodeFluent 序列化程序将生成的数据源转换为 JSON。其他人似乎在将 CodeFluent 对象转换为 JSON 时遇到各种问题,包括未正确处理循环引用。

这是示例代码:

public ActionResult ReadForGrid([DataSourceRequest]DataSourceRequest request)
{
    //Convert CodeFluent collection of objects to a list.
    List<MyCodeFluentModel> CFECollectionList = new List<MyCodeFluentModel>();
    foreach (MyCodeFluentModel aCodeFluentModel in MyCodeFluentModelCollection.LoadAll())
    {
        CFECollectionList.Add(new MyCodeFluentModel(fileMetaData));
    }

    //Convert the list to a DataSourceResult
    //Which is a formatted object suitable to be returned to the grid.
    DataSourceResult dataSourceResult = CFECollectionList.ToDataSourceResult(request);

    //Convert the DataSourceResult to JSON, and return it.
    return ConvertToJsonResponse(dataSourceResult);
}

public static ContentResult ConvertToJsonResponse(object obj)
{
    string json = JsonUtilities.Serialize(obj);
    return PrepareJson(json);
}
public static ContentResult PrepareJson(string json)
{
    ContentResult content = new ContentResult();
    content.Content = json;
    content.ContentType = "application/json";

    return content;
}

现在你只需要设置 Telerik 网格来调用“ReadForGrid”方法。

于 2015-11-04T10:27:31.510 回答