陷入重定向循环
本文关键字:循环 重定向 | 更新日期: 2023-09-27 18:25:45
如果用户的状态为0,我在基本控制器中有一块代码要重定向到页面。
if (UserService.IsLoggedIn())
{
model.IsLoggedIn = true;
model.CurrentUser = UserService.GetCurrentUser();
model.UserProfile = svc.GetByUserId(model.CurrentUser.Id);
if (model.UserProfile.OnboardStatus == 0)
{
HttpContext.Response.Redirect("/user/onboard/"+ model.UserProfile.Id);
}
}
我陷入了重定向循环,我不确定如何修复它。
这是因为您也从BaseController
继承了UserController
。
解决方案1:不要从BaseController
继承UserController
。
解决方案2:
我推测您在BaseController
中的OnActionExecuting
中有这部分代码。
如果是这样,你可以更新你的代码如下。
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (UserService.IsLoggedIn())
{
model.IsLoggedIn = true;
model.CurrentUser = UserService.GetCurrentUser();
model.UserProfile = svc.GetByUserId(model.CurrentUser.Id);
var controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName.ToLower();
var actionName = filterContext.ActionDescriptor.ActionName.ToLower();
if (controllerName != "user" && actionName != "onboard" && model.UserProfile.OnboardStatus == 0)
{
HttpContext.Response.Redirect("/user/onboard/"+ model.UserProfile.Id);
}
}
}