В чем разница между этими подходами к ссылке в комплекте 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 10

2 ответа:

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

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

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

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

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