0
을 나는이 _layout로드 메뉴가 : 액션 MenuRole에서아동의 행동은 재 작업을 수행 할 수 없습니다 - MVC
...
@Html.Action("MenuRole","Menu")
...
내가 액션 필터로 세션을 확인 :
[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);
}
}
때 세션 시간 제한, @ Html.Action ("MenuRole", "메뉴")에서 _layout 쇼 오류 : 아이의 행동은 행동
를 해결
메시지는 자명하다 - 'Session [ "Username"]'가'null' 인 경우에 당신이하고있는'ChildActionOnly' 메소드에'RedirectToRouteResult()'를 사용할 수 없다. –
나는 그것을 안다. 다른 방법 있으십니까? –
당신의 문제는 여기에서 온다 :'새로운 RedirectToRouteResult (new RouteValueDictionary (new {action = "Index", controller = "Login"})); 아마'@ Html.Action' 대신에'@Url.Action'을 사용하면이 문제를 해결할 수 있습니다. –