執行在MVC中,我們可以裝飾操作方法與不同的過濾器一樣按照什麼順序過濾器在asp.net mvc的
[HttpPost]
[Authorize]
public ActionResult mymethod(){}
HttpPost
從MethodSelectorAttribute
(可能是間接的)派生和Authorize
屬性從ActionFilterAttribute
繼承。
我的問題是:他們在MVC請求管道中執行的順序是什麼?我試圖在MVC源代碼中搜索,但未能找到相關的代碼位。
我會假設它們在反射期間返回的順序,這可能會受到源中實際順序的影響。 –
@Hasan bhai首先很高興看到你然後我相信HttpPost是actionmethodSelector(它的方法isValidForRequest被調用)屬性和Authorize是actionFilter屬性(它的onActionExecuting或onActionExecuted被調用),所以他們必須在不同的時間被調用。可能HttpPost應該在Authorize之前調用,因爲它們是不同的過濾器並具有不同的職責。 –
看來我的假設是錯誤的。 Eranga的答案顯示過濾器有一個機制來指定它們的順序。然而,因爲HttpPost並不是過濾器。它可能有特殊的處理方式,可能是在執行任何其他事情之前執這又是一個假設。 –