我正在尝试使用 MVC4 的新“捆绑和缩小”。
对于 IE 条件注释,我仍然使用旧方法:<!--[if lt IE 9]><link href=.../><![endif]-->
或者<!--[if lt IE 9]>@Styles.Render("~/foo")<![endif]-->
,但我似乎没有得到自动调试/发布处理。
有没有内置的方法可以做到这一点?其他人如何做到这一点?
编辑:
能够<noscript>
在渲染输出中包含标签(用于回退)也很棒。
我正在尝试使用 MVC4 的新“捆绑和缩小”。
对于 IE 条件注释,我仍然使用旧方法:<!--[if lt IE 9]><link href=.../><![endif]-->
或者<!--[if lt IE 9]>@Styles.Render("~/foo")<![endif]-->
,但我似乎没有得到自动调试/发布处理。
有没有内置的方法可以做到这一点?其他人如何做到这一点?
编辑:
能够<noscript>
在渲染输出中包含标签(用于回退)也很棒。
在我找到更好的方法之前,我制作了一个名为 的适配器类Bundles
,它具有以下方法:
public static IHtmlString RenderStylesIe(string ie, params string[] paths) {
var tag = string.Format("<!--[if {0}]>{1}<![endif]-->", ie, Styles.Render(paths));
return new MvcHtmlString(tag);
}
脚本也有类似的方法。视图这样称呼它们:
@Bundles.RenderStylesIe("lt IE 9", "~/Content/foo")
@Bundles.RenderScriptsIe("lte IE 7", "~/Scripts/bar")
如果有更好的方法,我将不胜感激。
即将发布的 1.1-alpha1 更新将支持使用 Scripts/Styles 助手进行您自己的标签格式化。
有一个新的 DefaultTagFormat 属性,默认设置为:
"<script src="{0}"></script>"
还有一个 RenderFormat 方法也接受标签格式。您应该能够使用这些更多地控制渲染。您尝试使用格式字符串执行的操作是否可行?
我在这里找到了一个替代方案:https ://coderwall.com/p/5zqvkg
这是一个偏好问题
(仍然喜欢上面的代码 - 它更干净,更容易阅读
@Bundles.RenderStylesIe("lt IE 9", "~/Content/foo")
@Bundles.RenderScriptsIe("lte IE 7", "~/Scripts/bar")
)