在离开页面之前,将当前url保存在控制器中

本文关键字:url 保存 存在 控制器 离开 | 更新日期: 2023-09-27 18:17:10

出于某些原因,我需要从用户导航的页面中保存url,以便在其他viewscontrollers中使用它。例如:用户在www.page1.com上,正在导航到www.page2.com,然后我想以某种方式保存www.page1.com的url。

我已经做了一些研究并尝试了一些事情,首先我在寻找饼干,但由于很多原因,我想忽略这个可能的解决方案。然后我在寻找一个解决方案,使用JQuery来设置MVC会话变量,这不起作用,因为那些在服务器端。最后,我想出了一个可能的解决方案,这是使一个AJAX调用控制器,并使用UserProfile(这是我在我的应用程序中创建的),以保存被导航离开的url。

这是我使用的代码:

视图:

$("a").on('click', function(e) {
            $.ajax({
                url: '<%= Url.Action("SetPreviousPage") %>',
                type: 'POST',
                data: $(location).attr('href');,
                success: function() {
                    alert("Success");
                },
                error: function(xhr, status, error) {
                    alert(error.toString());
                    var err = eval("(" + xhr.responseText + ")");
                    alert(err.Message);
                }
            });
        });

控制器:

public JsonResult SetPreviousPage(string url)
    {
        FactsProfile.GetProfile().PreviousPage = url;
        return Json(url);
    }

由于某些原因,这不起作用,并且我在AJAX调用中得到一个错误,其中我无法看到实际出了什么问题。

有两个问题

1:这是完成这个任务的正确方法吗?还是说对于这么小的任务来说工作量太大了?我的方法出了什么问题?

在离开页面之前,将当前url保存在控制器中

您是否尝试使用请求。UrlReferrer,我记得它给你的url在你移动到这个新的之前