Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
Javascript 重定向到浏览器上的特定操作后退按钮单击MVC_Javascript_Asp.net Mvc_Back Button_Page Refresh - Fatal编程技术网

Javascript 重定向到浏览器上的特定操作后退按钮单击MVC

Javascript 重定向到浏览器上的特定操作后退按钮单击MVC,javascript,asp.net-mvc,back-button,page-refresh,Javascript,Asp.net Mvc,Back Button,Page Refresh,单击浏览器的“后退”按钮时,如何重定向到控制器操作。 我可以通过点击我自己的按钮或页面上的链接来实现这一点,但是点击浏览器的后退或刷新按钮来获得相同的结果是一个问题 我有一个名为“通知”的控制器 控件中名为“解锁”的操作以“id”作为参数 我的链接工作得非常好: @Html.ActionLink("Back to List", "Unlock", new { id = Model.NotificationId }) 我尝试过使用javascript: <script>

单击浏览器的“后退”按钮时,如何重定向到控制器操作。 我可以通过点击我自己的按钮或页面上的链接来实现这一点,但是点击浏览器的后退或刷新按钮来获得相同的结果是一个问题

我有一个名为“通知”的控制器
控件中名为“解锁”的操作以“id”作为参数

我的链接工作得非常好:

    @Html.ActionLink("Back to List", "Unlock", new { id = Model.NotificationId })
我尝试过使用javascript:

    <script>
        window.onbeforeunload = function () {
            window.location.replace("/Notifications/Unlock/" + "@Model.NotificationId");
            }
    </script>

window.onbeforeunload=函数(){
window.location.replace(“/Notifications/Unlock/“+”@Model.NotificationId”);
}

甚至window.location.href似乎也不起作用。请帮忙。谢谢:)

你不能这样做。当用户按下浏览器的“后退”按钮时,将呈现上一页的缓存版本,并且永远不会调用服务器。

这对我来说很有效:

<script>
    window.onunload = function () {
        $.ajax({
            url: '/Notifications/Unlock/' + '@Model.NotificationId',
            type: 'POST',
            datatype: "json",
            contentType: "application/json; charset=utf-8"
        });
    };
</script>

window.onunload=函数(){
$.ajax({
url:'/Notifications/Unlock/'+'@Model.NotificationId',
键入:“POST”,
数据类型:“json”,
contentType:“应用程序/json;字符集=utf-8”
});
};

只是想让您知道,这是一种非常糟糕的做法,因为它既不是标准行为,也不是用户期望的行为。你应该有非常有力的理由这样做。我不知道是否有可能更改“后退”按钮的历史记录或行为。我很清楚这一点,谢谢。只是当用户点击我的链接时需要采取一些行动。但是如果他们不去,点击后退按钮。。。大问题,谢谢你。有没有比我正在尝试的更好的方法?因为禁用后退按钮是绝对不可能的。作为一名开发人员,我一直是其他糟糕网站的用户,这些网站都实现了这一点。。。jokesI我认为我们需要更多的背景知识来了解您试图解决的实际问题。然后可以考虑其他方法。也许AJAX调用了一个动作或类似的东西。非常感谢@timmkrause。这给了我一个想法。如果重定向到的操作方法是“HttpPost”类型,那么这个方法有效吗?我的操作方法是“HttpPost”类型,因此我在ajax调用中提到了“POST”