C# ASP.NET MVC 5-将用户选择的样式表传递到_Layout.cshtml
我创建了一个设置页面,用户可以从下拉列表中选择引导样例主题。CSS主题文件位于C# ASP.NET MVC 5-将用户选择的样式表传递到_Layout.cshtml,c#,asp.net-mvc,asp.net-mvc-5,C#,Asp.net Mvc,Asp.net Mvc 5,我创建了一个设置页面,用户可以从下拉列表中选择引导样例主题。CSS主题文件位于~/Content/themes中。相应的设置控制器将此主题选项的名称存储在数据库中如何使用@Scripts.Render(“~/Content/themes”+themeName)”将值加载到_布局视图中?这样每个页面上都会加载主题 我正在努力解决这样一个事实,即_Layout.cshtml没有控制器,以及我应该如何从数据库中获取数据,即使用模型或控制器,或者完全其他的东西 以下是一个简化的结构概述: Website
~/Content/themes
中。相应的设置控制器将此主题选项的名称存储在数据库中如何使用@Scripts.Render(“~/Content/themes”+themeName)”将值加载到_布局视图中
?这样每个页面上都会加载主题
我正在努力解决这样一个事实,即_Layout.cshtml没有控制器,以及我应该如何从数据库中获取数据,即使用模型或控制器,或者完全其他的东西
以下是一个简化的结构概述:
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";
}
您可以将此代码放在您的
\u viewstart
中,并且不为视图设置布局。您是否有不同的布局。cshtml
用于不同的下拉选项?@ramilu否,我应该吗?