我在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"))
并根据用户选择更改使用的
答案 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。但是在这种情况下,它不会成为捆绑包的一部分。