离开页面前保存当前的URL在控制器中,由于某些原因,我需要从用户正在导航的页面保存url以便在其他views
和中使用它。 I.E:用户在www.page1.com上,正在浏览www.page2.com,然后我想以某种方式从www.page1.com保存网址。在导航离开页面
我已经做了一些研究并尝试了一些东西,首先我正在寻找cookie,但是由于很多原因我想忽略这个可能的解决方案。然后我正在寻找一个使用JQuery来设置MVC Session变量的解决方案,这些变量因为服务器端的变量而不起作用。最后我提出了一个可能的soluiton,它正在对控制器进行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:这是完成此任务的正确方法吗?或者这对于这样一个小任务有很大的作用? 2:我的方法出了什么问题?我该如何检查问题来自哪里。
你有没有尝试过使用'Request.UrlReferrer'我记得它给你在移动到这个新的位置之前的URL。 – Dabbas
正是我在找的,谢谢! – Basvo
请标记为答案 – Dabbas