Controller Action通过第二次单击ASP.NET MVC时未调用的加载调用内部按钮单击事件

时间:2013-12-24 06:25:12

标签: asp.net-mvc

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

我正在开发一个应用程序,在其中单击“显示日志”按钮,我需要显示一个弹出窗口,其中的网格视图将被动态内容填充。 我在cshtml中实现了“显示日志”按钮。在其click事件中,我提到了一个javascript函数“OnShowLogClick”。 里面的javascript函数“OnShowLogClick” 我通过以下的加载方法调用了我的Controller Action(它将动态数据返回到网格中)。

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

                }
            });

我有2个问题

1)On intial点击“Show Log”按钮,调用Controller动作。但是第二次点击时,javascript函数被执行,但是没有调用控制器动作。

2)popupWindow内部的网格没有用整个数据模型绑定。每次只显示9个条目。

请帮帮我 提前致谢

1 个答案:

答案 0 :(得分:0)

此问题是由于浏览器中的缓存造成的。当你第二次请求同时从缓存中获取输出时,它第二次没有被称为服务器请求,所以它有两种方法来解决这个问题

1)如果您在操作上方添加属性 [OutputCache(NoStore = true,Duration = 0,VaryByParam =“”)] ,那么缓存将无法维护请求。

2)第二种方式是你可以在ajax请求中添加缓存为false        示例

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