В настоящее время мы объединяем файлы Bootstrap следующим образом:
public class BundleConfig
{
// For more information on bundling, visit https://go.microsoft.com/fwlink/?LinkId=301862
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js"));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/Site.css"));
}
}
И мы применяем эти пакеты к нашим HTML-файлам с помощью этой команды:
@Scripts.Render("~/bundles/bootstrap")
Однако мы надеемся постепенно отказаться от использования Bootstrap, поскольку мы привлекли эксперта по UX / UI, который не хочет использовать Bootstrap.
Есть ли способ отменить команду @ Scripts.Render или применить Bootstrap только к определенной части представления? Унаследована ли команда @ Scripts.Render всеми дочерними частичными представлениями?
То, что прокомментировал @Stephen Muecke, абсолютно правильно. Хочу добавить еще несколько.
Is there any way to undo the @Scripts.Render command or to apply Bootstrap to only a specific portion of a view?
Вы не можете отменить обработанные скрипты. Вы не можете ограничить его определенной частью представления. И созданные скрипты будут применены ко всем частичным файлам.
Is the @Scripts.Render command inherited by all child partial views?
Да.
Вот что ты можешь сделать.
Мы сделали это для условной загрузки. Мы добавили флаг в ViewBag.
ViewBag.isBootStrapRequired = true;
На странице макета мы загрузили пакет следующим образом.
if (ViewBag.isBootStrapRequired) {
@Scripts.Render("~/bundles/bootstrap")
}
Короткий ответ - нет. А частичные данные - это просто концепция на стороне сервера - все они объединяются и отправляются в браузер как один HTML-документ. Поскольку объединение минимизирует и кэширует файлы, снижение производительности минимально, но вы всегда можете создать второй файл макета без пакета начальной загрузки, а затем при изменении представления изменить связанный макет