.NET捆绑和自定义运行时{占位符}?

时间:2014-06-11 17:10:23

标签: asp.net asp.net-mvc bundling-and-minification

我有不同的css文件,具体取决于浏览器和设备。一种捆绑方法是注册每个组合“phone.ie”,“desktop.ie”,“phone.chrome”等,并为正确的捆绑包设置Render方法string.format(“〜/ content / {0} 。{1}“,设备,浏览器)。这可行,但涉及的维护要多得多。额外的css文件意味着要注册更多的捆绑包。

如果我可以注册一个捆绑包,那真的很酷:

        bundles.Add(new StyleBundle("~/content/css")
            .Include("~/content/css/styles.{device}.{browser}.css"));

并简单地渲染

@Styles.Render("~/content/css")

其中{device}和{browser}是运行时变量的占位符。我怎么能这样做?有一个{version}占位符用于jQuery包,但对于自定义值似乎不太可扩展。

将渲染字典提供给整洁的

@Styles.Render("~/content/css", new { device = runtimeDevice, browser = runtimeBrowser })

1 个答案:

答案 0 :(得分:0)

ASP.NET捆绑和优化中没有对自定义令牌的内置支持。我建议编写一个自定义扩展方法,例如bundles.AddFormattedBundle(...),它接受​​所需的参数并进行自己的替换。这都是您必须编写的自定义代码。

要提交有关ASP.NET捆绑和优化的建议,您可以查看该网站:https://aspnetoptimization.codeplex.com/workitem/list/basic