2010-07-20 53 views

回答

2

沒有內置的機制來做到這一點。所以:

創建一個擴展方法來編碼當前url:

public static class UrlHelperExtensions 
{ 
    public static string AddToFavourites(this UrlHelper helper) 
    { 
     return helper.RouteUrl("AddToFavourites", new { url = EncodeUrl() }); 
    } 

    private static string EncodeUrl() 
    { 
     var request = HttpContext.Current.Request; 
     string url = request.Url.ToString(); 

     return Convert.ToBase64String(Encoding.Default.GetBytes(url)); 
    } 
} 

再用鋼絲了你的行動:

public ActionResult AddToFavourites(string url) 
{ 
    url = Encoding.Default.GetString(Convert.FromBase64String(url)); 

    return View(url); 
} 

確保你有一個路線:

routes.MapRoute(
    "AddToFavourites", 
    "Home/AddToFavourites/{url}", new { url = (string)null }); 

然後你就可以在你的菜單使用助手:

<a href="<%= Url.AddToFavourites() %>">Add To Favourites</a> 

希望有幫助嗎?

0

我不認爲這是一個asp.net MVC的問題。在這裏你的「動作」是指一個URL的權利?你可以使用JavaScript document.referrer得到最後一次訪問的URL。

1

覆蓋基本控制器OnAction執行並保存操作(例如在Session中)。

相關問題