12

我使用 Visual Studio 2012 和内置模板(在 Add -> New Project 下)创建了一个面向 .NET Framework 4.5 的全新 ASP.NET Web Forms Web 应用程序项目。在默认提供的 Site.Master 页面中,我看到一些包含页面上的 CSS 的标记,如下所示:

<webopt:BundleReference runat="server" Path="~/Content/css" />

但是,我注意到我可以使用其他代码来代替......

<%: Styles.Render("~/Content/css") %>

当我查看呈现的页面时,结果似乎是一样的。使用 webopt:BundleReference 和使用 Styles.Render 有什么区别?

其中一种方法比另一种更好吗?

4

2 回答 2

10

<%: Styles.Render %>语法适用于 ASP.NET MVC(它不能使用 ASP.NET 控件,因为它们没有真正的页面上下文可供使用)。该BundleReference控件用于 WebForms。

ASP.NET MVC 可以使用 WebForms 作为视图引擎来替代 Razor(您会看到太多的“@”符号),这就是为什么会有一些交叉。

我想他们添加了 Control 以保持一致,而不是要求 WebForms 人员使用页面的呈现功能(<%标签)。

于 2012-09-18T17:31:09.560 回答
2

当我查看呈现的页面时,结果似乎是一样的。使用 webopt:BundleReference 和使用 Styles.Render 有什么区别?

据了解,BundleReference 不仅用于包含脚本和样式引用,还用于将它们捆绑在一起以提高带宽效率。请参阅教程捆绑和缩小。我认为后者只是包含一个或多个符合 URL 模式的脚本的助手。

于 2012-10-11T21:30:43.093 回答