【问题标题】:ASP.Net MVC Routing and the PreRequestHandlerASP.Net MVC 路由和 PreRequestHandler
【发布时间】:2009-03-18 19:12:42
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net-mvc routing prerequesthandler


    【解决方案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);
    

    你可以在其中做各种有趣的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 2016-04-26
      相关资源
      最近更新 更多