在 MVC 中第二次单击时未调用 ASP.NET 加载中通过加载调用的控制器操作



我是MVC新手 ASP.NET .我的问题是:

我正在开发一个应用程序,其中在"显示日志"按钮上单击,我需要显示一个弹出窗口,在该窗口中填充了动态内容的网格视图。我在cshtml中实现了"显示日志"按钮。在它的点击事件中,我提到了一个javascript函数"OnShowLogClick"。在javascript函数"OnShowLogClick"中我通过加载方法调用了我的控制器操作(返回要在网格内绑定的动态数据),即:

  $(#popupWindowDiv).load("@Url.Action("Action", "Controller")", null,
            function (response, status, xhr) {
                    if (status == "error") {
                        alert("An error occurred while loading");
                }
                else {
                }
            });

我有 2 个问题

1)在初始单击"显示日志"按钮时,调用控制器操作,但在第二次单击时执行javascript函数,但不调用控制器操作。

2)弹出窗口中的网格没有填充绑定整个数据模型。每次只显示 9 个条目。

请帮助我提前致谢

此问题是由于浏览器中的缓存造成的。当您第二次请求相同的请求时,它从缓存中获取输出时,它不会第二次称为服务器请求,因此有两种方法可以解决此问题

1) 如果在操作上方添加属性 [OutputCache(NoStore = true, Duration = 0, VaryByParam = "")],则缓存将不会为该请求维护。

2)第二种方法是您可以在ajax请求中添加缓存是假的

$.ajax({
            cache: false,
            type: "POST",
            url: "@(Url.Action("ActionName", "Controller"))",
            data:Model,
            success: function (data) {
            },
            error: displayerror
        });

相关内容

  • 没有找到相关文章

最新更新