更改捆绑文件上的css

时间:2012-12-27 14:03:00

标签: css asp.net-mvc asp.net-mvc-4 bundle

我在mvc网站上工作

我有2个CSS文件,一个用于阿拉伯语用户,另一个用于英语用户

但是第一个css文件添加到bundle

像:

bundles.Add(New StyleBundle("~/Content/css").Include("~/Content/site.css"))

我想添加另一个stylebundle

像:

bundles.Add(New StyleBundle("~/Content/css").Include("~/Content/site.ar.css"))

并根据用户选择更改使用的

2 个答案:

答案 0 :(得分:3)

实际上这是可能的。以下是我为英语/法语网站所做的事情:

在BundleConfig.cs中:

bundles.Add(new StyleBundle("~/Content/css-en-US").Include(
            "~/Content/site.en-US.css"));
bundles.Add(new StyleBundle("~/Content/css-fr-FR").Include(
            "~/Content/site.fr-FR.css"));

在我的视图中(在我的情况下为_Layout.cshtml):

@{
    var culture = System.Threading.Thread.CurrentThread.CurrentUICulture.Name.ToLowerInvariant();
}
...
    @Styles.Render("~/Content/css-" + culture)
...

我希望这会有所帮助。

答案 1 :(得分:1)

在应用程序启动期间(在global.asax中)配置了Bundle,因此更改BundleConfig.cs工作将无济于事,除非在应用程序启动期间可以使用添加或删除css到bundle的首选项(这可能不会是这样的。)

因此,另一个选项是当用户选择偏好为阿拉伯语时,将此新css文件发送到浏览器。 从技术上讲,这意味着在布局中有一个条件来检查偏好并包括阿拉伯语css。但是在这种情况下,它不会成为捆绑包的一部分。