2013-02-20 106 views
0

我正在将一个AJAX数据绑定的Telerik网格迁移到Kendo UI网格。将Telerik MVC Grid迁移到Kendo UI

随着Telerik的控制器方法返回PartialViewResult(使用内部框架函数调用),但与新的Kendo UI网格,我只能通过返回JsonResult使其工作。 如果我返回一个PartialViewResult,网格渲染为空。

问题: 是否有可能使用Kendo UI网格返回PartialViewResult

Telerik的代码:

[GridAction] 
public PartialViewResult SelectProducts() 
{ 
    return DoChildReadingAction(() => 
     _service.GetAllProducts().ToProductListItemViewModels(), "_ChildError"); 
} 

剑道UI代码:

public JsonResult SelectProducts([DataSourceRequest]DataSourceRequest request) 
{ 
    return Json(_service.GetAllProducts().ToProductListItemViewModels() 
         .ToDataSourceResult(request)); 
} 
+0

尝试从浏览器中打开提供数据的URL并检查返回的JSON的格式,或编辑原始问题(包括返回的页面),我们可能会查看它。 – OnaBai 2013-02-20 15:05:29

+0

OnaBai,我希望这能回答你的问题: ContentEncoding = NULL 的ContentType = NULL 数据= DataSourceResult有14个项目,错误是空 JsonRequestBehavior是DenyGet,但我修改,添加参数AllowGet 然后我喂这DoChildReadingAction(),它返回带有包含JsonResult的Model的PartialViewResult。 – sicottec 2013-02-20 15:19:03

+0

其实我是问JSON为了帮助你指定'DataSource'定义应该是什么样子。似乎你在'DataSourceResult'中返回结果数组,意味着'schema.data'应该是''DataSourceResults“'(参见http://docs.kendoui.c​​om/api/framework/datasource#schemadata-functionstring),但是不知道JSON是否到达浏览器并且没有看到代码和JSON都难以找出为什么不显示。浏览器控制台是否显示任何错误? – OnaBai 2013-02-20 16:16:25

回答

2

剑道UI电网ASP.NET MVC的工作用JSON结果。它不适用于PartialResult。更多信息可以在AJAX binding帮助主题中找到。

你只需要转换代码:

public JsonResult SelectProducts([DataSourceRequest]DataSourceRequest request) 
{ 
    return Json(_service.GetAllProducts().ToProductListItemViewModels() 
         .ToDataSourceResult(request)); 
} 

另外,还要确保你已经包括kendo.aspnetmvc.min.js到您的网页。否则,你会看到DenyGet错误。查看troubleshooting帮助主题了解更多详情。

+0

我们将调整我们的代码来改为使用JsonResult。谢谢。 – sicottec 2013-02-21 14:44:25