【问题标题】:Kendo UI Grid returns JSON to browser (using MVC)Kendo UI Grid 将 JSON 返回到浏览器(使用 MVC)
【发布时间】:2013-12-29 19:31:00
【问题描述】:

我最近购买了 Kendo 订阅,我无法让 AJAX 绑定网格按预期运行,希望这里有人能提供帮助。

我已经按照剑道文档教程@http://docs.kendoui.com/getting-started/using-kendo-with/aspnet-mvc/helpers/grid/ajax-binding 并且可以让 AJAX 绑定正常工作。

我现在尝试将它实现到现有的 MVC 解决方案中,并且每当我单击“新建”或“编辑”命令按钮时,我会收到一个 JSON 字符串返回到浏览器。与问题类似 (JSON data to KENDO UI Grid ASP.NET MVC 4) 但该问题的答案对我不起作用。

这是我的控制器代码...

    public ActionResult Index()
    {
        // non-important code removed here // 

        var viewModel = newReferenceViewModel();
        ViewBag.TradeReferences = TradeReferenceWorker.Get(applicationId);

        return View(viewModel);
    }

    public ActionResult TradeReferences_Read([DataSourceRequest]DataSourceRequest request)
    {
        var applicationId = GetCurrentApplicationId();
        DataSourceResult result = TradeReferenceWorker.Get(applicationId).ToDataSourceResult(request);
        return Json(result, "text/x-json", JsonRequestBehavior.AllowGet);
    } 

还有视图....

@(Html.Kendo().Grid((IEnumerable<TradeReference>)ViewBag.TradeReferences)
  .Name("gridTradeReference")

  .DataSource(dataSource => dataSource
      .Ajax()
       .Model(model =>
        {
            model.Id(tradeReference => tradeReference.TradeReferenceId);
            model.Field(tradeReference => tradeReference.TradeReferenceId).Editable(false);
        })
        .Read(read => read.Action("TradeReferences_Read", "References"))
        .Create(create => create.Action("TradeReference_Create", "References"))
        .Update(update => update.Action("TradeReference_Update", "References"))
        .Destroy(destroy => destroy.Action("TradeReference_Destroy", "References"))
   )

  .Columns(columns =>
  {
      columns.Bound(tref => tref.TradeReferenceId).Visible(false);
      columns.Bound(tref => tref.Name);
      columns.Bound(tref => tref.Phone);
      columns.Command(commands =>
      {
          commands.Edit();
          commands.Destroy();
      }).Title("").Width(200);
  })
  .ToolBar(toolbar => toolbar.Create()) 
  .Editable(editable => editable.Mode(GridEditMode.InLine)) 
  .Sortable()

)

总而言之... Grid 将在第一次完美加载。我没有在编辑/删除操作上连接任何东西,只是试图让创建操作。单击“添加新”,甚至单击“编辑”将使浏览器简单地将 Json 显示到屏幕上。

希望这很简单 - 在此先感谢

【问题讨论】:

    标签: ajax asp.net-mvc json kendo-grid


    【解决方案1】:

    已解决 - 问题是未正确引用 kendo js 文件。

    在我的特殊情况下,捆绑没有 100% 正确完成,因此 Kendo javascript 文件永远不会包含在页面中。

    它们还必须按特定顺序出现,如故障排除指南http://docs.kendoui.com/getting-started/using-kendo-with/aspnet-mvc/helpers/grid/troubleshooting中所述

    【讨论】:

    • 谢谢!刚刚从另一个漫长的工作之夜中拯救了自己!
    • 也谢谢你——我忽略了关于脚本必须在页面中的何处呈现的建议​​,并且网格生成的代码是在定义 jQuery 之前。此链接(从答案中的页面链接)很有用。 docs.telerik.com/kendo-ui/aspnet-mvc/troubleshooting
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    相关资源
    最近更新 更多