[英]ASP.NET MVC 5 - Passing user chosen stylesheet to _Layout.cshtml
我創建了一個“設置”頁面,用戶可以在其中從下拉列表中選擇Bootswatch主題。 CSS主題文件位於~/Content/themes
。 相應的SettingsController將這個主題選擇的名稱存儲在數據庫中。 如何使用 @Scripts.Render("~/Content/themes" + themeName)
將值加載到_Layout視圖中 ? 這樣就可以在每個頁面上加載主題。
我為_Layout.cshtml沒有控制器以及如何從db中獲取數據(即使用模型或控制器,或完全使用其他方法)而苦惱。
這是簡化的結構概述:
Website
Areas
User
Controllers
>SettingsController.cs //here I store the value in the db
Views
Settings
>Index.cshtml //settings page view
>_ViewStart.cshtml
Controllers
Views
Shared
>_Layout.cshtml
>_ViewStart.cshtml
您可以從數據庫中讀取當前的“選定布局”,然后根據需要選擇“布局”。 你可以這樣想:
switch (SystemInfo.Theme)
{
case 1:
Layout = "~/Views/Shared/Layouts/Themes/Blue/_LayoutMain.cshtml";
break;
case 2:
Layout = "~/Views/Shared/Layouts/Themes/nice/_LayoutMain.cshtml";
break;
default:
Layout = "~/Views/Shared/Layouts/Themes/default/_LayoutMain.cshtml";
}
您可以將此代碼放在_viewstart
而無需設置“ Layout
”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.