2012-05-08 116 views
0

我有我自己的Razor視圖引擎的實現,允許我處理部分視圖和視圖「餵養」,以便我的視圖的本地化版本提供給客戶端。在ViewEngine覆蓋過程_Layout.cshtml渲染

我使用protected override IView CreateView覆蓋視圖選擇過程並注入語言感知邏輯。

我也有protected override IView CreatePartialView但是當我加載一個視圖,假設呈現我的_Layout.cshtml CreatePartialView沒有得到保證。

我需要重寫哪個ViewEngine方法來「捕捉」_layout頁面呈現以執行語言感知替換?

回答

0

一種方式是通過設置佈局屬性像這樣指定由特定語言的視圖的特定於語言的佈局:

@{ 
    Layout = "~/Views/Shared/_Layout.french.cshtml"; 
} 

這仍然不是一個好辦法,因爲它打破了整個「視圖/語言「鏈接範例,依賴於視圖引擎覆蓋代碼。

但它更靈活,因爲允許遠離主視圖命名約定。