首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Div没有从ajax调用加载新的PartialView。

Div没有从ajax调用加载新的PartialView。
EN

Stack Overflow用户
提问于 2017-02-07 18:22:36
回答 1查看 194关注 0票数 0

我目前正在为一个项目开发新的功能,在这个项目中,用户可以同时添加一个或多个条目。这些步骤如下:

  1. 单击“添加年度报告”按钮。
  2. Telerik Modal窗口将弹出状态的下拉列表。
  3. 选择实际状态并出现日期选择器(Telerik也是)。
  4. 如果选择“预测”,则会出现“开始日期”的日期选择器,以及“年终选择”的另一个下拉列表(“预测”可运行多年)。
  5. 为任一选择填充日期字段后,单击“添加”按钮。
  6. 单击Add会触发一个针对服务器的ajax方法,该方法将创建一个新的年度报告列表,并将其发送给会话对象。如果一切顺利,它就会返回。
  7. 如果成功,则显示声明成功的文本,然后关闭窗口,并用新的报告更新包含年度报告列表的div。

然而,到目前为止,这一切都是可行的,但也存在一个问题。实际上,当您多次运行时,包含所有年度报告的div都会出现错误,我的意思是在第一次之后不要刷新,或者使用以前的数据。它不会刷新。我已经关闭了对ajax调用的缓存,删除了警报,删除了setTimeout实例,删除了div并将其添加回了,等等。

但是,如果我打开IE开发工具,它就能工作。我读到IE因使用缓存而臭名昭著,这有时很好,但在这种情况下并非如此。

是否有任何方法关闭缓存并强制div重新加载?

下面是我对发生的事情的代码。

AddARPartialView.cshtml:

代码语言:javascript
复制
$(document).ready(function () {
    $("#btnAdd").click(function (e) {
        //Stop system from proceeding to server immediately
        e.preventDefault();

        //Used for checking Completion
        var success = false;

        //Show spinner while system processes page
        //ShowProgress();

        //Check to see if there was any validation errors
        ShowValidationErrors();

        //There was an error, so do nothing
        if (hasError) {
            //hideprogessbar();
            return false;
        }

        //Save Message
        $.ajax({
            type: "POST",
            cache: "false",
            url: "/PM/AddARPartialView",
            dataType: "json",
            data: $('form').serialize(),
            success: function (result) {
                if (result.success) {
                    //Mark Success as true
                    success = true;

                    //Hide the Progress bar and show the success message
                    //hideprogessbar();
                }
                else {
                    //Mark Success as false
                    success = false;

                    //hideprogessbar();
                    var DetailError = 'Error while creating new Annual Reports.  Please contact administrator with below details.'
                        + '\n' + '\n' + result.Error;
                    $("#lblError").show();
                    $("#lblError").text(DetailError);
                }
            },
            error: function (xhtr, e, e2) {
                alert(e + '\n' + xhtr.responseText, 'error', '');
            },
            complete: function () {
                if (success)
                {
                    CloseARModal();
                    UpdateAnnualReports();
                }
            }
        });
    });
});

普通页:

代码语言:javascript
复制
function CloseARModal() {
    var arWindow = $("#AnnualReport").data("tWindow");
    arWindow.close();
}

function UpdateAnnualReports() {
    //Show spinner while system processes page
    //ShowProgress();

    $.ajax({
        type: "GET",
        cache: "false",
        url: "/PM/ARPartialView",
        success: function (result) {
            $("#divARe").html(result);
        },
        error: function (xhtr, e, e2) {
            if (xhtr.status === 401)
                alert("Session Timeout or Unauthorized to access this webpage");
            else
                alert(e + '\n' + xhtr.responseText);
        }
    });

    //hideprogessbar();
    //alert("New Annual Report(s) added successfully!");
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-08 16:10:15

所以我的脸肯定因为尴尬而发红了。我解决了这个问题。如果检查Ajax调用,就会注意到缓存,我将它设置为"false“。它不应该在它周围有引号,而应该是完全错误的。

我在其他人的Ajax调用中注意到了这一点,并在我的调用中进行了尝试。当然,缓存问题马上就消失了,哈哈…

令人愤怒的是,几天的研究、尝试和错误的尝试,以及把我的头撞在桌子上的努力都白费了,因为我有一个坏的榜样要从前承包商那里效法。我应该永远记住,如果看上去很奇怪,就去质疑吧,亲爱的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42097183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档