#asp.net-mvc #orchardcms
#asp.net-mvc #orchardcms
Вопрос:
В теме TheAdmin в OrchardCore.Темы, которые я вижу в представлениях папки Layout.cshtml и Layout-Login.cshtml.
В теме TheAgency я вижу макет.жидкость в папке views.
Я попытался изменить свой макет.жидкость в моей папке views в моей недавно созданной теме в Layout.cshtml и когда я запускаю ее, она все еще работает.
Итак, в чем разница между файлами liquid и cshtml в темах в ядре Orchard, и когда я должен использовать один вместо другого?
Ответ №1:
Это два разных механизма просмотра, которые вы можете использовать. Razor / cshtml более знаком для ASP.NET разработчики, но его представления скомпилированы. Liquid — очень известный язык шаблонов в мире JavaScript, и у него есть огромное преимущество для Orchard в том, что его представления не компилируются. Это позволяет сохранять их в базе данных, изменять их без перезапуска или запуска компиляции и т.д.
У вас, как у автора модуля, есть выбор, и вы должны использовать тот, который вам наиболее удобен. Однако иногда, например, если представление должно создаваться динамически по какой-либо причине, Liquid является единственным выбором.
Комментарии:
1. Есть ли способ получить code-completion или intellisense в Visual Studio для шаблонов Liquid? Я вижу, что есть расширение для VS Code, но не могу найти его для VS.
2. Да, похоже, что на marketplace доступны только расширения VS Code.
Ответ №2:
Причина, по которой liquid является единственным вариантом для редактируемых шаблонов контента, заключается в том, что шаблон razor имеет полный доступ ко всему, что вы можете написать в коде C # внутри @{ }
блока. В этом случае это ограничено только разрешениями на выполнение, которые предоставляются веб-приложению. Таким образом, из-за этого шаблоны razor могут представлять угрозу безопасности, позволяя конечным пользователям писать шаблоны в razor.
С помощью шаблона liquid вы можете вызывать только фильтры liquid, предоставляемые хостом, который отрисовывает шаблон.