7

我有一个 .Net MVC Web 应用程序(不是 WebAPI),我想在到达控制器之前拦截对 Web 应用程序的所有调用,检查请求标头中的值,如果该值不存在,则执行某些操作(例如呈现 404)。这样做的理想方法是什么?请记住,这不是一个 Web API 应用程序,只是一个简单的 Web 应用程序。

4

2 回答 2

6

根据您具体想要做什么,您可以使用所有其他控制器扩展的默认控制器。这样你就可以覆盖OnActionExecutingInitialize在那里进行检查。

public class ApplicationController : Controller
{
    protected override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        //do your stuff here
    }
}

public class YourController : ApplicationController
{

}
于 2013-04-17T19:37:27.913 回答
3

您正在寻找全局操作过滤器。

创建一个继承ActionFilterAttribute,覆盖OnActionExecuting()以执行处理的类,并将实例添加到 Global.asax.cs 中的全局过滤器集合(内部RegisterGlobalFilters()

于 2013-04-17T19:37:05.280 回答