使用 RouteValueDictionary 重新路由到视图会导致许多重定向.MVC3.
本文关键字:视图 许多 MVC3 重定向 RouteValueDictionary 新路由 路由 使用 | 更新日期: 2023-09-27 18:35:48
当会话过期时,我想将用户重定向回登录页面。所以我添加了一个类并从 ActionFilterAttribute 继承,这样我就可以在即将执行操作时进行检查。作为测试,我把这段代码放进去:
public class SessionFilters : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var defaults = new RouteValueDictionary {{"Controller", "Home"}, {"Action", "About"}};
filterContext.Result = new RedirectToRouteResult(defaults);
base.OnActionExecuting(filterContext);
}
}
如您所见,我正在强制重定向到"关于"视图,但是我在浏览器中收到以下错误:
The webpage at http://localhost:58494/Home/About has resulted in too many redirects.
Clearing your cookies for this site or allowing third-party cookies may fix the
problem. If not, it is possibly a server configuration issue and
not a problem with your computer.
如何使用此方法正确重定向到另一个视图?谢谢
更新没关系。我有一个荷马辛普森时刻。我定义的是一个无限循环,所以浏览器就像"忘记这个"。代码正在工作..
确保没有使用 [SessionFilters]
属性装饰整个 HomeController ,而只装饰需要重定向到的操作。如果您使用操作过滤器装饰了整个控制器,那么显然此过滤器适用于所有操作,包括"关于",因此适用于无限重定向循环。