2016-11-09 167 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在你搬到這個新的之前。