Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Миграция проекта с ASP.NET Web Forms на Blazor

24.06.22 01:03
Re: Миграция проекта с ASP.NET Web Forms на Blazor
 
alex445 коренной житель
в ответ alex445 24.06.22 00:54, Последний раз изменено 24.06.22 01:23 (alex445)

При этом заметьте, как запутана логика отрисовки - чтобы понять, что будет в итоге, чёрт ногу сломит метаться между файлами:


1) встречаем такую разметку, которая использует компонент


<ChildContentComponent>
    <ChildContent>
        <p>The time is @DateTime.Now</p>
    </ChildContent>
</ChildContentComponent>


2) идём в code-behind смотреть, что это за ChildContent


@code {
    [Parameter]
    public RenderFragment ChildContent { get; set; } }


3) смотрим в разметке компонента, куда будет отрисован ChildContent


<h1>Component with child content</h1>

<div>@ChildContent</div>


4) пытаемся собрать воедино всю эту бурду - вставляем в ChildContentComponent (пункт 1) разметку из компонента (пункт 2)


<ChildContentComponent>
    <h1>Component with child content</h1>

    <div>@ChildContent</div>
</ChildContentComponent>


5) убираем лишнее обрамление (оно не отрисовывается в конечной HTML-разметке)


<h1>Component with child content</h1>

<div>@ChildContent</div>


6) вставляем в свойство ChildContent его шаблон (снова возвращаемся за ним в пункт 1)


<h1>Component with child content</h1>

<div><p>The time is @DateTime.Now</p></div>


Вот что будет отрисовано вместо изначальной разметки в пункте 1.


Офигеть как всё запутали! И это простой случай - без кучи параметров со своими шаблонами, без иерархических шаблонов, без привязок, без параметров типа и без рекурсивных отрисовок шаблонов (нужно для отрисовки древовидной структуры данных). Конечно, можно привыкнуть к любому дерьму, но почему, ска, обязательно через задницу всё?!

 

Перейти на