更改bundle文件上的css

更改bundle文件上的css,css,asp.net-mvc,asp.net-mvc-4,bundle,Css,Asp.net Mvc,Asp.net Mvc 4,Bundle,我在mvc网站上工作 我有两个CSS文件,一个用于阿拉伯语用户,另一个用于英语用户 但是第一批css文件添加到了bundle中 比如: 我想添加另一个样式包 比如: 根据用户选择更改使用的捆绑包,捆绑包在应用程序启动期间配置(在global.asax中),因此将BundleConfig.cs更改为工作状态不会有帮助,除非在应用程序启动期间可以使用添加或删除css到捆绑包的首选项(可能不会出现这种情况) 因此,另一个选项是,当用户选择首选项为阿拉伯语时,将此新css文件发送到浏览器。 从技术上讲,

我在mvc网站上工作

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

但是第一批css文件添加到了bundle中

比如:

我想添加另一个样式包

比如:


根据用户选择更改使用的捆绑包,捆绑包在应用程序启动期间配置(在global.asax中),因此将BundleConfig.cs更改为工作状态不会有帮助,除非在应用程序启动期间可以使用添加或删除css到捆绑包的首选项(可能不会出现这种情况)

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

捆绑包是在应用程序启动期间配置的(在global.asax中),因此将BundleConfig.cs更改为工作状态将不会有帮助,除非在应用程序启动期间可以使用添加或删除css到捆绑包的首选项(可能不会出现这种情况)

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

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

在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在我的示例中):


我希望这能有所帮助。

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

在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在我的示例中):


我希望这会有所帮助。

用户选择来自哪里?它是如何存储的?用户选择来自:Cookie用户选择来自哪里?它是如何存储的?用户选择来自:cookie
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"));
@{
    var culture = System.Threading.Thread.CurrentThread.CurrentUICulture.Name.ToLowerInvariant();
}
...
    @Styles.Render("~/Content/css-" + culture)
...