我是新手在MVC與c#,我想知道爲什麼控制器實例構造函數將被頻繁調用(這意味着不止一次)。許多MVC控制器實例化的相同的控制器
我已經創建了一個基於佈局頁面的典型視圖。在佈局網頁,我打電話一劍道TreeView.I'm也使用AutoFac,我已經根據AutoFac MVC指令添加下面的指令到我的Global.asax:
builder.RegisterControllers(typeof(MvcApplication).Assembly);
如果我調試,正在使用來自上面的視圖的控制器實例構造函數在Kendo TreeView被處理後立即被調用。我可以理解,如果控制器操作被要求提供Kendo TreeView數據源,但我不理解這個實例構造函數的幾個調用。我認爲已經有一個控制器的實例。
有沒有人知道如果相同的控制器的許多實例構造函數執行是正常的,或者在我的編碼通常有錯誤,例如,我可能不應該將Kendo樹視圖放置在佈局中,也許在部分視圖中?
此致 斯蒂芬
你還沒有顯示你的視圖,但是每當有一個方法發出一個請求時,控制器就被初始化,所以當請求返回視圖時,它將被初始化,並且如果你的'Kendo TreeView數據源'正在對同一個控制器中的方法進行ajax調用。 –
如果樹視圖控件具有根據「AuthorizeAttribute」確定每個節點是否可見/不可見的邏輯,那麼它將爲每個節點創建一個控制器實例,以檢查當前用戶是否有權訪問它。控制器構造函數應該保持輕量級 - 它們應該只包含警戒子句和服務分配。每個用戶請求都會實例化一個新的控制器實例,這樣如果您每次都嘗試構建某些內容,那麼您的應用程序的性能就會很差。 – NightOwl888