【问题标题】:Kendo Chart's ajax request not reaching the action methodKendo Chart 的 ajax 请求未到达 action 方法
【发布时间】:2015-06-17 14:50:12
【问题描述】:

请任何人帮助我解决有关 Telerik 示例的问题,在该示例中我试图显示带有 ajax 调用的图表。

代码运行良好,没有任何异常,但它没有触发我控制器中的操作方法。我环顾四周,但找不到正确的答案。

我的控制器代码如下

public ActionResult Index()
{
    DataTable dataTable = GetChartData();
    return View(dataTable);
}

public ActionResult Read([DataSourceRequest] DataSourceRequest request)
{
    DataTable chartData = GetChartData();
    var result = chartData.ToDataSourceResult(request);

    return Json(result, JsonRequestBehavior.AllowGet);
}

private DataTable GetChartData()
{
    return chartService.GetChartDataById(4);
}

我的索引视图如下

@(Html.Kendo().Chart()
    .Name("chartAjaxBinding")
    .CategoryAxis(axis => axis.Labels(labels => labels.Template("#: value.split(' ').join('\\n')#")))
    .Series(series =>
    {
        series.Column("Column1").CategoryField("Column2");
    })
    .DataSource(dataSource => dataSource
        .Read(read => read.Action("Read", "MyController"))
))

【问题讨论】:

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


    【解决方案1】:

    默认情况下,Kendo Chart 将向服务器发送 POST 请求,您的操作是接受 GET 请求。此外,您不需要添加DataSourceRequest,也不需要将结果转换为DataSourceResult

    [HttpPost]
    public ActionResult Read()
    {
        DataTable chartData = GetChartData();
        return Json(chartData, JsonRequestBehavior.DenyGet);
    }
    

    或者,您可以让图表发送 GET 请求:

    @(Html.Kendo().Chart()
        .Name("chartAjaxBinding")
        .CategoryAxis(axis => axis.Labels(labels => labels.Template("#:value.split(' ').join('\\n')#")))
        .Series(series =>
        {
            series.Column("Column1").CategoryField("Column2");
        })
        .DataSource(dataSource => dataSource
            .Ajax()
            .Read(r => r.Action("Read", "MyController").Type(HttpVerbs.Get)
    ))
    

    【讨论】:

    • 谢谢尼古拉斯。我已经找到了问题的根源。我加载了两个不同版本的 jquery,由于这个原因,我收到了 Object 不支持属性或方法 'kendochart' 的错误。我最初是在没有抛出任何异常的 chrome 中调试的,而且我不知道问题的确切来源,但是当我尝试 IE 时,我得到了 jquery 异常。删除 jquery 重复后,我的问题得到解决。
    猜你喜欢
    • 2012-02-26
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 2016-06-25
    • 1970-01-01
    • 2015-10-29
    相关资源
    最近更新 更多