ASP.NET MVC AJAX PartialView Telerik UI无法加载

时间:2015-12-30 10:14:52

标签: javascript asp.net ajax asp.net-mvc telerik

我有一个使用AJAX更新的PartialView。使用AJAX更新Div时,HTML元素正确加载,但未加载Telerik图表。图表中的数据源不是调用Action方法:

.DataSource(ds => ds.Read(read => read.Action("Movies_Read", "Movies")))

最初加载PartialView时,不使用AJAX,数据源调用action方法并正确加载图表。

根据Telerik ASP.NET PartialView AJAX,需要对OnSuccess事件进行此Javascript调用:

<script type="text/javascript">
  function updatePlaceholder(context) {
    // the HTML output of the partial view
    var html = context.get_data();

    // the DOM element representing the placeholder
    var placeholder = context.get_updateTarget();

    // use jQuery to update the placeholder. It will execute any JavaScript statements
    $(placeholder).html(html);

    // return false to prevent the automatic update of the placeholder
    return false;
}

我已经尝试过文档中提到的javascript,但是get_data()和get_updateTarget()不存在事件,虽然我已经添加了MicrosoftAjax.js和MicrosoftMvcAjax.js。我怀疑这些已被弃用。 我也尝试过其他的javascript函数,但没有任何运气。

我的AJAX电话是:

@using (Ajax.BeginForm("UpdateMoviesChart", "Movies", new AjaxOptions { UpdateTargetId = "MoviesDiv", InsertionMode = InsertionMode.Replace, OnSuccess = "updatePlaceholder", }))

使用AJAX时如何正确加载Telerik图表?

1 个答案:

答案 0 :(得分:0)

在视图中,应添加以下脚本以使用Ajax更新Div:

查看:

<div class="chart-wrapper"></div>
<script>
    $(function () {
        $.ajax({
            url: "@(Url.Action("Movies_Read", "Movies"))",
            success: function (data) {
                $(".chart-wrapper").html(data);
            }
        });
    })
</script>

还应该更新控制器以将ActionResult作为返回类型。

控制器:

public ActionResult RemotePartialView()
{
    return PartialView("remote_partial_view");
}