2013-04-17 80 views
6

我有一個.Net MVC的Web應用程序(不是WebAPI),我想攔截所有對Web應用程序的調用,然後到達控制器,檢查請求標題中的值,如果值不是目前(如呈現404)。什麼是這樣做的理想方式?請記住,這不是一個Web API應用程序,只是一個簡單的Web應用程序。MVC Web .Net:在到達控制器之前攔截所有呼叫?

+1

的可能重複的[ASP.NET MVC 4截距所有傳入請求(http://stackoverflow.com/questions/11726848/asp-net-mvc-4-intercept-all-incoming-requests) –

+0

在你檢查這個值之後,你是否會把請求傳遞給控制器​​? – Floremin

回答

5

取決於你想要做什麼特別,你可以使用所有其他控制器擴展的默認控制器。這樣,您可以覆蓋OnActionExecutingInitialize並在那裏進行檢查。

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

public class YourController : ApplicationController 
{ 

} 
3

您正在尋找全球行動過濾器。

創建一個繼承ActionFilterAttribute類,覆蓋OnActionExecuting()執行你的處理,並在Global.asax.cs中增加全球過濾器回收的情況下(內RegisterGlobalFilters()

+0

使用這種方法,你能指定你想要做哪些路線嗎? – ggderas