如何獲取上次訪問的「動作」在asp.net mvc應用程序中。如何在asp.net中獲取上次訪問的動作mvc
比如我有一個菜單項稱爲「添加到收藏夾」單擊時被導航到一個頁面中,我需要填充的文本框與此網址
如何獲取上次訪問的「動作」在asp.net mvc應用程序中。如何在asp.net中獲取上次訪問的動作mvc
比如我有一個菜單項稱爲「添加到收藏夾」單擊時被導航到一個頁面中,我需要填充的文本框與此網址
沒有內置的機制來做到這一點。所以:
創建一個擴展方法來編碼當前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>
希望有幫助嗎?
我不認爲這是一個asp.net MVC的問題。在這裏你的「動作」是指一個URL的權利?你可以使用JavaScript document.referrer
得到最後一次訪問的URL。
覆蓋基本控制器OnAction執行並保存操作(例如在Session中)。