簡體   English   中英

ASP.NET MVC Controller中的執行順序是什么?

[英]What is the order of execution in ASP.NET MVC Controller?

假設我有一個名為“ HomeController”的控制器,該控制器繼承自Mvc.Controller。 還說我已經寫了控制器的構造函數和一些動作的過濾器。

Public Class ClientController
    Inherits System.Web.Mvc.Controller

    Public Sub New()
        ''Some code
    End Sub

    <SomeActionFilter()> _
    Function Index() As ActionResult
        Return View()
    End Function
End Class

我的問題是:

  1. 構造函數,過濾器,動作的執行順序是什么?
  2. 如果我不想通過檢查某些條件在其中運行代碼,可以為構造函數使用過濾器嗎?

構造函數將優先。 根據過濾器的類型,過濾器或操作方法將在第二次執行。 有關過濾器類型,請參見此處。

過濾器不會攔截構造函數。 如果要控制Controller的構造函數調用,則需要通過實現IControllerFactory (或DefaultControllerFactory )來構建自定義控制器工廠,並在ControllerBuidler注冊它,例如:在應用程序啟動時ControllerBuilder.Current.SetControllerFactory(typeof(MyControllerFactory))

如果我不想通過檢查某些條件來在其中運行代碼?

您不能直接在構造函數中編寫該代碼(例如,要重用的基本控制器中的檢查條件)嗎? 為什么在這種情況下需要過濾器?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM