[MVC] View切換不同主題
ThemeViewEngine實作
預設的ViewEngine讀取方式不變(若沒有對應的Theme,使用預設),新增一個ThemeViewEngine來讀取Theme目錄底下的View。如下圖建立ThemeViewEngine
覆寫相關取得MasterView、View、PartialView的方法。將字串路徑#Theme#取代成使用者挑選的Theme將ThemeViewEngine加入到ViewEngines集合內,本例插入最前面的位置,目的為找不到Theme時,則取最上層的View
測試程式
HomeController.cs
Index設定呈現的內容以及新增ChangeTheme Action來作切換ThemeViews
最上層及Theme底下新增Index View,作不同css及版型(本例:1~4欄)的呈現。呈現效果
原始碼下載:https://github.com/kimx/DynamicViewLab