В чем разница между этими подходами к ссылке в комплекте CSS в ASP.NET веб-формы 4.5?

Я использовал Visual Studio 2012 и встроенный шаблон (в разделе Add - > New Project) для создания нового ASP.NET веб-формы проект веб-приложения, ориентированный на .NET Framework 4.5. внутри сайта.Главная страница, предоставленная по умолчанию, я вижу некоторую разметку, которая включает CSS на странице, которая выглядит так:

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

однако я заметил, что потенциально могу использовать этот другой код....

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

когда я смотрю на визуализированную страницу, результат кажется то же самое. В чем разница между использованием webopt:BundleReference и использованием стилей.Рендер?

один из них лучше, чем другие?

2 ответов


на <%: Styles.Render %> синтаксис для ASP.NET MVC (который не может использовать ASP.NET элементы управления, поскольку для них нет реального контекста страницы). The BundleReference управление для WebForms.

ASP.NET MVC может использовать WebForms в качестве механизма просмотра в качестве альтернативы Razor (где вы видите слишком много символов"@"), поэтому есть немного кроссовера.

Я предполагаю, что они добавили элемент управления, чтобы сохранить согласованность, а не требовать от людей WebForms использовать функцию рендеринга страницы ( <% теги).


когда я смотрю на отображаемую страницу, результат кажется одинаковым вещь. В чем разница между использованием webopt: BundleReference и использовать стили.Рендер?

Как вы понимаете, BundleReference используется не только для включения ссылок на скрипт и стиль, но и для их объединения для эффективности пропускной способности. См. учебник связывание и минимизация. Я думаю, что последний является просто помощником для включения одного или нескольких сценариев это соответствует шаблону URL.