如何获取用户重定向到MVC4中当前操作的操作名称

时间:2013-08-08 08:33:51

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我在Home Controller中有两个名为'abc'和'def'的动作。动作'abc'返回RedirectToAction(“def”)。因此,我可以在'def'中获取Redirect离子触发的动作的名称。

public ActionResult abc()
{
    //Some code
    return RedirectToAction("def");
}

public ActionResult def()
{
    //Some code
    string str = "You have been redirected from action 'abc'";
    return Content(str);
}

如何在动作def?

中获得此名称abc

2 个答案:

答案 0 :(得分:1)

您可以使用Request.UrlReferrer获取引荐网址或Request.ServerVariables字典,例如Request.ServerVariables["http_referer"]

答案 1 :(得分:1)

您不应使用URLReferrer。为什么?

因为Request.UrlReferrer不是100%正确的方式,因为安全软件/防病毒,防火墙,代理程序可以阻止URLReferrer多种方式。 Pop Ups中的URLReferrer将为null。这就是我无法使用URLReferrer来检查此页面打开位置的原因。

那么,最好的方法是什么?

Request.RequestContext.RouteData.Values["action"]