Динамическая вёрстка Bootstrap 4.3
Решение позволяет генерировать HTML Bootstrap разметку не задумываясь о самом HTML или CSS.
- знание HTML, CSS или Bootstrap не трубуются. Управляющий сервис сам построит конечный Bootstrap.HTML.
- Объектно-ориентированное управление DOM-ом. Построение DOM.HTML непосредственно из кода. Можно построить полноценный WEB.GUI не касаясь razor/cshtml/html/css
- гибкость динамической вёрстки. Строение DOM не ограничено шаблонами razor.cshtml. Структура и содержание объектов HTML.DOM определяется в коде и доступно для любых модификаций в процессе обработки запроса
about:
- в проекте присутусвуют классические asp компоненты и модели, а так же "управляющие сервисы"
- компоненты выполняют генерацию html разметки в момент вызова, а сервисы позволяют предварительно настроить этот процесс
- за каждым сервисом закрплён один из компонентов. Имя компонента (для рендеринга коненчого html) хранится в поле сервиса
public string ViewComponentName { get; }
- готовый сервис можно отрисовать в Razor .cshtml:
@await Component.InvokeAsync(MyService.ViewComponentName, new { SetObjectManager = MyService })
(где MyService это готовый "управляющий сервис") - компонент принимает сервис в виде парамтера и формирует нужный html
Пространсва имён:
-
@using BootstrapAspDynamicRender.service
-> управляющие сервисы. Хранят в себе имя ответсвенного компонента, который принимает этот тип как модель. Т.е. настроеный сервис можно вставить в любом месте razor.html одной строкой@await Component.InvokeAsync(ModelService.ViewComponentName, new { SetObjectManager = ModelService })
-
@using BootstrapAspDynamicRender.components
-> рендеринг-компоненты, для отрисовки "своего" сервиса -
@using BootstrapAspDynamicRender.models
-> вспомогательные модели
Именование:
- все типы в проекте отвечают правилам именования, а точнее правилам префикса по первым двум (или трём) строчным буквам имени типа. Например:
hrOptionSelect
,bmInput
илиhsButton
- каждый тип (будь то компонент, модель или сервис) в своём имени имеет вначале 2 (иногда 3) буквы по которым этот можно определить область применения
- в случае с абстарктным сервисом префикс состоит из трёх симовлов и начинается с символа
a
. Например:ahsDisengageableDom
Обозначение символов префикса:
- a (=abstract) - означает, что класс абстрактный. примечание: абстрактные типы могут встретиться в "управляющих сервисах"
- b (=Bootstrap) - генерация Bootstrap HTML разметки
- h (=HTML) - генерация native HTML разметки
- s (=Service) - "управляющие сервисы"
- m (=Model) - вспомогательные модели. примечание: для компонент в роли модели (
@model
) обычно выступают "управляющие сервисы" - r (=Rendering) - компоненты
ViewComponent