2014-11-21 56 views
1

MVC過濾器提供了一種注入操作和控制器的預處理和後處理邏輯的方法。我們也可以編寫自定義過濾器,並使用該屬性來裝飾我們的動作和控制器。在執行動作之前和之後,通過編寫方法可以達到同樣的效果。那我們爲什麼要使用過濾器?編寫自定義方法和自定義過濾器有什麼區別?編寫自定義方法和自定義過濾器有什麼區別?

+0

你可以通過「執行動作前後的方法」來顯示你的意思嗎(即給出一些代碼,顯示控制器的外觀) – 2014-11-21 10:54:59

+0

使用過濾器可以讓你編寫一段代碼然後應用於多個(或全部)動作方法 – 2014-11-21 10:58:57

+0

而不是使用動作過濾器,我可以在Controller的Action中調用一個函數。那麼爲什麼我們需要MVC中的動作過濾器?這是我的疑問。 – 2014-11-21 14:05:21

回答

0

至於我得到自定義的方法你的意思重寫器管道的方法,如OnActionExecutedOnResultExecuted等,如果你實現你的邏輯存在,代碼編寫也將在所有控制器方法被exicuted。此外,如果你想在你的應用程序的其他控制器中使用這個邏輯,你必須創建你的CoreContoller類,如果你覆蓋了方法並由其他控制器繼承它。

另一方面,如果您實現了ActionFilter並將其註冊到您的MVC應用程序中,您可以在控制器方法的頂部添加屬性,在不同的控制器方法上使用此邏輯。如果你不需要所有方法的邏輯,它就會更加靈活。