在OnActionExecuting中重定向循环

gfr*_*zle 1 vb.net asp.net-mvc redirect

当给定条件为false时,我试图将用户引导到我的站点上的某个页面(VB,MVC4),但我不断获得重定向循环:

Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.

这是我的代码:

Public Class UserValidation
    Inherits ActionFilterAttribute

    Public Overrides Sub OnActionExecuting(filterContext As System.Web.Mvc.ActionExecutingContext)

        If Not DoSomeInternalCheck() Then
            filterContext.Result =
                New RedirectToRouteResult(
                    New RouteValueDictionary() From {
                        {"controller", "Home"},
                        {"action", "MessagePage"}
                    }
                )
        End If

        MyBase.OnActionExecuting(filterContext)

    End Sub

End Class
Run Code Online (Sandbox Code Playgroud)

为了让用户远离网站的其他部分而只让他们看到这一页,我缺少什么?

Str*_*ior 7

您需要更改此过滤器,以便在用户访问您要将其重定向到的主页时不会重定向用户!

重定向结果会向浏览器发送一条消息,显示"转到此其他网址".当他们转到其他网址时,他们的请求会通过相同的过滤器,告诉他们"转到此网址[与以前相同的网址]".最终浏览器放弃并(正确地)表明您可能已经遇到某种无限重定向循环.