我最近一直在实施RouteConstraint,其职责是将自定义路由值与会话中的某些模型数据进行匹配。
我发现对于IncomingRequest的routeDirection,会话为空。
遗憾的是,除了在第一个条目上配置会话时,需要在每个路由上应用此验证,因此我认为路由约束将是最佳解决方案。
感谢。
答案 0 :(得分:1)
由于必须在每次调用时发生,我可能会处理控制器(或基本控制器)OnActionExecuting,然后设置ActionExecutingContext.Result以返回一个新的RedirectToRouteResult,其中包含一个包含所需值的RouteValueDictionary。这也可以封装在ActionFilter中(控制器实现IActionFilter)。
答案 1 :(得分:1)
我不清楚你究竟想要实现什么(重定向到登录页面或呈现一些消息)所以我不能给出任何好的替代解决方案,但我可以告诉你,当IRouteConstraint正在进行时会话无法访问评估,因为路由管道在加载会话之前发生。例如。路由可能会呈现完全不需要会话的页面。