1

我正在尝试在 Application_PreRequestHandlerExecute() 方法中实例化服务并验证当前用户,然后在 global.asax.cs 类的* Application_PostRequestHandlerExecute() 方法中处理此服务。我在此过程中需要的一项是 orgname,它附加在我的 url 路由的开头。我已经映射了一条看起来像这样的路线“{orgName}/{controller}/{action}/{id}”

所以我的问题是,在 ASP.Net MVC 应用程序中,是否可以在 Application_PreRequestHandlerExecute() 事件中访问任何路由信息(或以某种方式访问​​我的实例中的“orgname”)?如果这是不可能的,是否有其他方法可以连接到 MvcHandler 并做类似的事情(也许我应该构建一个自定义过滤器?)

4

1 回答 1

1

您需要“RequestContext”来查找所有路由值。除了在控制器内部,我不知道有任何其他方法可以获取它们。

你应该实现一个“ActionFilterAttribute”,然后用它装饰你的控制器。

ActionFilter 有方法

//     Called after the action method executes.
public virtual void OnActionExecuted(ActionExecutedContext filterContext);
//     Called before the action method executes.
public virtual void OnActionExecuting(ActionExecutingContext filterContext);

你可以在里面做各种有趣的事情。

于 2009-03-18T21:04:36.173 回答