我有一个 .Net MVC Web 应用程序(不是 WebAPI),我想在到达控制器之前拦截对 Web 应用程序的所有调用,检查请求标头中的值,如果该值不存在,则执行某些操作(例如呈现 404)。这样做的理想方法是什么?请记住,这不是一个 Web API 应用程序,只是一个简单的 Web 应用程序。
问问题
3633 次
2 回答
6
根据您具体想要做什么,您可以使用所有其他控制器扩展的默认控制器。这样你就可以覆盖OnActionExecuting
或Initialize
在那里进行检查。
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 回答