Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Div未从ajax调用加载新的PartialView_Jquery_Html_Ajax_Asp.net Mvc_Asp.net Mvc 5 - Fatal编程技术网

Jquery Div未从ajax调用加载新的PartialView

Jquery Div未从ajax调用加载新的PartialView,jquery,html,ajax,asp.net-mvc,asp.net-mvc-5,Jquery,Html,Ajax,Asp.net Mvc,Asp.net Mvc 5,我目前正在为一个项目开发新功能,用户可以一次添加一个或多个条目。步骤如下: 单击“添加年度报告”按钮 此时会弹出一个Telerik模式窗口,其中包含一个状态下拉列表 选择实际状态,并显示日期选择器(Telerik) 如果改为选择“计划”,则开始日期将显示一个日期选择器,结束年份选择将显示另一个下拉列表(计划可以运行多年) 为任一选择填充日期字段后,单击添加按钮 单击Add将触发一个ajax方法,该方法将命中服务器,服务器将创建一个新年度报告列表并将其发送到会话对象。如果一切顺利,它就会返回 如果

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

  • 单击“添加年度报告”按钮
  • 此时会弹出一个Telerik模式窗口,其中包含一个状态下拉列表
  • 选择实际状态,并显示日期选择器(Telerik)
  • 如果改为选择“计划”,则开始日期将显示一个日期选择器,结束年份选择将显示另一个下拉列表(计划可以运行多年)
  • 为任一选择填充日期字段后,单击添加按钮
  • 单击Add将触发一个ajax方法,该方法将命中服务器,服务器将创建一个新年度报告列表并将其发送到会话对象。如果一切顺利,它就会返回
  • 如果成功,则显示文本说明成功,然后关闭窗口,并用新报告更新包含年度报告列表的div
  • 到目前为止,这一切都是可行的,但是,有一个问题。实际上,当您多次运行此操作时,包含所有年度报告的div就会出错,我的意思是,在第一次之后不会刷新,也不会使用以前的数据。它不会刷新。我已经关闭了ajax调用的缓存,删除了警报,删除了setTimeout实例,删除了div并重新添加了它,等等。所有这些似乎都没有刷新div

    然而,如果我打开IE开发者工具,它就会工作。我读到IE因使用缓存而臭名昭著,这有时是好的,但在本例中并非如此

    有没有办法关闭缓存并强制重新加载div

    下面是我的代码

    AddARPartialView.cshtml:

    $(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();
                    }
                }
            });
        });
    });
    
    常规页面:

    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!");
    }
    

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

    我在别人的Ajax调用中注意到了这一点,并在我的调用中进行了尝试。果然,缓存问题立刻消失了,哈哈

    令人气愤的是,几天的研究、尝试和错误尝试,以及我的头撞在桌子上都白白浪费了,因为我有一个前承包商的坏榜样可以效仿。我应该永远记得,如果它看起来很奇怪,质疑它,哈哈