如何在ASP.NET MVC

时间:2016-05-24 15:36:19

标签: asp.net-mvc http httprequest action-filter

我有ActionFilter成功捕获了网页浏览量以及请求中的重要信息。然后,此捕获条目的主键与活动相关联(即:成功登录)。

我现在尝试自动捕获重定向(即:RedirectToAction)并将其与页面视图相关联。我相信这可以在捕获页面视图的ActionFilter中完成,但我不确定是否有办法从OnActionExecuting上下文告知GET请求是否来自重定向。

有没有办法告诉HttpRequest / ActionExecutingContext(或ActionExecutedContext)该网页是否来自重定向?

谢谢!

1 个答案:

答案 0 :(得分:4)

RedirectToAction返回RedirectToRouteResult

在过滤器的OnActionExecuted方法中

if (filterContext.Result is RedirectResult)
{
    // It was a RedirectResult
    var result = filterContext.Result as RedirectResult;
    var url = UrlHelper.GenerateContentUrl(result.Url, filterContext.HttpContext);
}
else if (filterContext.Result is RedirectToRouteResult)
{
    // It was a RedirectToRouteResult
    var result = filterContext.Result as RedirectToRouteResult;
    var url = UrlHelper.GenerateUrl(result.RouteName, null, null, result.RouteValues, RouteTable.Routes, filterContext.RequestContext, false);
}