如何从数据库设置中设置主题

时间:2015-05-26 18:11:52

标签: asp.net asp.net-mvc

我有一个ASP.NET MVC5站点,并且希望允许站点所有者能够更改主题(由相应的CSS文件控制)。我有一个管理员应用程序,允许他们更新Settings表的Theme字段(只包含一个条目)。

管理员应用使用WCF与网站进行通信。为了避免在每个页面视图上访问数据库,并且为了避免向_Layout.cshtml文件添加代码,我添加了一个类,如下所示......

public partial class Setting {
  public static string ThemeName { get; set; }
}

当管理员应用程序将更新的设置实体发送到WCF服务时,它会执行以下操作...

Setting.ThemeName = setting.Theme;

...我认为这会给整个网站带来新的价值。 _Layout.cshtml文件然后执行此操作...

<link href="/Content/Themes/@Setting.ThemeName/Theme.min.css" rel="stylesheet" type="text/css" />

但是,即使WCF服务调用更新Setting.Theme,_Layout.cshtml文件仍会获得旧值。

知道我做错了什么,或者更好的方法吗?我认为在Web项目中的任何地方都可以使用Setting类的静态属性,但似乎当WCF服务调用更新它时,_Layout.cshtml看不到更改。顺便说一句,他们都在同一个项目中。

1 个答案:

答案 0 :(得分:0)

好吧,由于这里完全没有任何建议,我最终将值写入一个小文本文件,然后在_Layout.cshtml文件中读取它。不是我希望这样做的方式,但它确实有效。