gpt4 book ai didi

asp.net-mvc - 不允许子操作执行重定向操作 - MVC

转载 作者:行者123 更新时间:2023-12-05 00:49:40 24 4
gpt4 key购买 nike

我有一个 _layout 加载菜单:

...
@Html.Action("MenuRole","Menu")
...

在 Action MenuRole 中,我使用 Action Filter 检查 session :

[CheckSession]
[ChildActionOnly]
public ActionResult MenuRole()
{
....
return PartialView("_LoadMenu",menuModel);
//_LoadMenu is partial view to show menurole
}

并且在行动过滤器:

public class CheckSession : ActionFilterAttribute, IActionFilter
{

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var ctx = filterContext.HttpContext;

//if Session == null => Login page
if (ctx.Session["Username"] == null)
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { action = "Index", controller = "Login" }));

}

base.OnActionExecuting(filterContext);
}
}

session 超时时,_layout 在@Html.Action("MenuRole","Menu") 中显示错误:不允许子 Action 执行重定向 Action

最佳答案

我遇到了同样的异常,我通过检查 IsChildAction 解决了这个问题:

        //if Session == null => Login page
if (ctx.Session["Username"] == null && !filterContext.IsChildAction)
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { action = "Index", controller = "Login" }));
}

解决了我的问题

关于asp.net-mvc - 不允许子操作执行重定向操作 - MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38586029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com