如何在asp.net mvc应用程序中获取最后一次访问的“Action”。
示例我有一个名为“添加到收藏夹”的menuItem,当点击导航到我需要用这个网址填充文本框的页面时
答案 0 :(得分:2)
没有内置机制来执行此操作。我会做的是填充你的添加到收藏夹网址,如下所示:
创建一个扩展方法来编码当前网址:
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>
希望有帮助吗?
答案 1 :(得分:1)
覆盖基本控制器OnActionExecuted并在那里保存操作(例如在Session中)。
答案 2 :(得分:0)
我不认为这是一个asp.net MVC问题。在这里你的“行动”是指一个URL吗?您可以使用JavaScript document.referrer
获取上次访问过的网址。