2016-11-09 214 views
0

离开页面前保存当前的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:我的方法出了什么问题?我该如何检查问题来自哪里。

+1

你有没有尝试过使用'Request.UrlReferrer'我记得它给你在移动到这个新的位置之前的URL。 – Dabbas

+0

正是我在找的,谢谢! – Basvo

+0

请标记为答案 – Dabbas

回答

1

你有没有试过使用Request.UrlReferrer我记得它给你的URL在你搬到这个新的之前。