如何在asp.net mvc中获取最后一次访问的操作

时间:2010-07-20 09:00:50

标签: c# .net asp.net-mvc

如何在asp.net mvc应用程序中获取最后一次访问的“Action”。

示例我有一个名为“添加到收藏夹”的menuItem,当点击导航到我需要用这个网址填充文本框的页面时

3 个答案:

答案 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获取上次访问过的网址。