C# 在Application_BeginRequest中,我如何知道何时请求MVC控制器?

C# 在Application_BeginRequest中,我如何知道何时请求MVC控制器?,c#,asp.net-mvc,C#,Asp.net Mvc,在global.asax中的Application_BeginRequest事件中,我只想在请求控制器操作方法时触发一些逻辑 当前,当请求资源(如.js文件等)时,会调用一些东西。在web.config中的元素下,可以添加以下节点 这将告诉IIS仅运行已知请求类型的管理器模块。如果您的服务器设置为无扩展或.mvc,则mvc请求仍将被处理。使用操作过滤器,而不是使用global.asax,然后您可以修饰确切的控制器或操作以执行逻辑 重写以下一个或所有方法: public class MyActi

在global.asax中的Application_BeginRequest事件中,我只想在请求控制器操作方法时触发一些逻辑


当前,当请求资源(如.js文件等)时,会调用一些东西。

在web.config中的元素
下,可以添加以下节点


这将告诉IIS仅运行已知请求类型的管理器模块。如果您的服务器设置为无扩展或.mvc,则mvc请求仍将被处理。

使用操作过滤器,而不是使用global.asax,然后您可以修饰确切的控制器或操作以执行逻辑

重写以下一个或所有方法:

public class MyActionFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        base.OnActionExecuted(filterContext);
    }
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);
    }
    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        base.OnResultExecuted(filterContext);
    }
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        base.OnResultExecuting(filterContext);
    }
}
装饰你的动作或控制器

[MyActionFilter]
public class MyController {
    [MyActionFilter]
    public ActionResult MyAction()
    {
        return View();
    }
}

有关其他操作筛选器,请参阅。

您可以检查提供资源url的
HttpContext.Current.Request.Path的值。
这是你问题的答案,但我更喜欢杰森的答案