重构jQuery AJAX调用部分视图

时间:2014-03-23 03:29:51

标签: javascript jquery ajax asp.net-mvc asp.net-mvc-5

在我的ASP.net MVC 5应用程序中,我有很多调用不同的局部视图。要加载/刷新这些视图,我使用的是jQuery AJAX。

然而,我最终对jquery的调用很多,这看起来很丑陋和多余。我认为必须有更好的方法来做到这一点。

这是我的index.cshtml中的脚本,我在这里调用部分视图。

    $(document).ready(function() {
        // load today's level
        $.ajax({
            url: '@Url.Action("_TodayLevel")',
            type: 'GET',
            contentType: 'application/json',
            dataType: 'html',
            //traditional: true,
        }).success(function(e) {
            $('#today-level').html(e);
        });

        // .... truncated to save space. But you get the idea, I have lots of this

        // load host level
        $.ajax({
            url: '@Url.Action("_HostLevel")',
            type: 'GET',
            contentType: 'application/json',
            dataType: 'html',
            //traditional: true,
        }).success(function (e) {
            $('#host-level').html(e);
        });
    });

有没有更好的方法呢?

2 个答案:

答案 0 :(得分:1)

在您提供的示例中,您实际上是在请求HTML页面,然后使用返回的HTML更新页面的一部分。

如果是这种情况,那么您只需使用jQuery的.load()方法:https://api.jquery.com/load/

答案 1 :(得分:0)

您可以考虑使用以下代码来实现您想要的目标

@{Html.renderaction("_TodayLevel","Controller");}

如果您对这两个视图没有任何控制器操作,您也可以考虑使用

@{Html.renderPartial("_yourViews");}