2014-04-27 83 views

回答

1

好的,所以在挖了一些東西之後,這就是我想要發生的事情。請糾正我,如果我錯了:

ViewResult正在處理,動作調用將檢索這個被安裝的視圖引擎並調用它們的FindView方法。視圖引擎會在內部將視圖的請求轉換爲ViewEngineResult對象。 ViewEngineResult對象返回View(如果存在)或它已搜索到適當視圖的位置列表。

如果視圖引擎是Razor,那麼對視圖的請求將被映射到其路徑被編碼到類名中的已編譯類的實例中。這些類是從WebViewPage<T>類派生的,並覆蓋WebViewPage類的Execute方法。對於其他元素,通過Execute方法中的WriteLiteral方法針對Write方法處理HTML元素。 WriteLiteralWrite方法將內容傳遞給TextWriter對象,然後傳遞給IView.Render方法。 MVC框架調用render方法,並通過render方法的參數TextWriter將輸出寫入客戶端。

0

其中一個層次,爲這部分代碼編寫模擬變得容易得多。此外,視圖可以是實現IView的任何視圖,允許定製視圖以及可能定製的視圖引擎。如果需要的話,它爲使用框架的開發人員提供了更高的靈活性。