在 Mvc3 中,我在实现 IRouteConstraint 接口时创建了自己的 RouteConstraint 类,这意味着我实现了 Match 函数。唯一但严重的问题是,每当调用 Match 函数时,会话对象始终为空。
我的简单代码如下所示:
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
if (routeDirection != RouteDirection.IncomingRequest)
{
return true;
}
HttpSessionStateBase sessionBase = httpContext.Session; // will be null
HttpSessionState session = HttpContext.Current.Session; // this will be null either
return true;
}
我无法避免使用会话对象,因为我需要登录管理员的“级别”/“类型”。我也不想在 cotroller 课上做我的事情,因为按时间维护会很麻烦。
谢谢, 加博尔