Исходный код вики Сценарии

Редактировал(а) Alexandr Fokin 2026/01/31 15:46

Скрыть последних авторов
Alexandr Fokin 5.12 1 |(% style="width:254px" %)Отправка изменений пользовательского интерфейса с сервера Blazor в браузер при возникновении событий сервера|(% style="width:1239px" %)(((
Alexandr Fokin 2.1 2 Pushing UI changes from Blazor Server to browser on server raised events
3 [[https:~~/~~/swimburger.net/blog/dotnet/pushing-ui-changes-from-blazor-server-to-browser-on-server-raised-events>>url:https://swimburger.net/blog/dotnet/pushing-ui-changes-from-blazor-server-to-browser-on-server-raised-events]]
4
5 mikoskinen/Blazor.EventAggregator
6 [[https:~~/~~/github.com/mikoskinen/Blazor.EventAggregator>>url:https://github.com/mikoskinen/Blazor.EventAggregator]]
7 Дополнение: После просмотра исходников считаю, что
Alexandr Fokin 5.12 8 лучше реализовать свое решение на основе событий жизненного цикла OnInitialized(Async) для подписки и Dispose(Async) для отписка от события
9 )))
10 |(% style="width:254px" %)Проблема внедрения зависимостей через конструктор|(% style="width:1239px" %)(((
Alexandr Fokin 2.1 11 Can we talk about constructor injection now that partial classes are here? #18088
12 [[https:~~/~~/github.com/dotnet/aspnetcore/issues/18088>>url:https://github.com/dotnet/aspnetcore/issues/18088]]
13
14 Возможное решение - собственная реализация IComponentActivator
15
16 Blazor: Implement IComponentActivator to get components from DI
17 [[https:~~/~~/github.com/abpframework/abp/issues/5527>>url:https://github.com/abpframework/abp/issues/5527]]
18
Alexandr Fokin 5.12 19 [[abp/framework ServiceProviderComponentActivator >>url:https://github.com/abpframework/abp/blob/48c52625f4c4df007f04d5ac6368b07411aa7521/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/DependencyInjection/ServiceProviderComponentActivator.cs||style="outline-width: 0px !important; user-select: auto !important;"]]
20 )))
21 |(% style="width:254px" %)Открыть новую вкладку|(% style="width:1239px" %)How can I open a new window
Alexandr Fokin 2.1 22 [[https:~~/~~/stackoverflow.com/questions/62769031/how-can-i-open-a-new-window-without-using-js>>url:https://stackoverflow.com/questions/62769031/how-can-i-open-a-new-window-without-using-js]]
Alexandr Fokin 5.12 23 |(% style="width:254px" %)Работа с файлами|(% style="width:1239px" %)(((
Alexandr Fokin 2.1 24 Загрузка файлов:
25
26 Отправка файлов в ASP.NET Core Blazor
27 [[https:~~/~~/docs.microsoft.com/ru-ru/aspnet/core/blazor/file-uploads?view=aspnetcore-5.0&pivots=webassembly>>url:https://docs.microsoft.com/ru-ru/aspnet/core/blazor/file-uploads?view=aspnetcore-5.0&pivots=webassembly]]
28
29 Для Net.Core 3.1
30 SteveSandersonMS/BlazorInputFile (Archived)
31 [[https:~~/~~/github.com/SteveSandersonMS/BlazorInputFile>>url:https://github.com/SteveSandersonMS/BlazorInputFile]]
32
Alexandr Fokin 5.12 33 ----
34
Alexandr Fokin 2.1 35 Скачивание файла:
Alexandr Fokin 5.12 36
Alexandr Fokin 2.1 37 Для скачивания файла можно сделать endpoint - api controller и кнопку, которая перенаправляет на него.
38 Можно использовать NavigationManager.
Alexandr Fokin 5.12 39 )))
40 |(% style="width:254px" %)Динамические отрисовка компонентов
41 (динамическое выбор типа компонента)|(% style="width:1239px" %)(((
Alexandr Fokin 3.1 42 How to Dynamically Render a Component in a Blazor Application
43 https://www.syncfusion.com/blogs/post/how-to-dynamically-render-a-component-in-a-blazor-application.aspx
44
45 Blazor - Как динамически создавать компоненты
46 https://question-it.com/questions/789772/blazor-kak-dinamicheski-sozdavat-komponenty
Alexandr Fokin 5.12 47 )))
48 |(% style="width:254px" %)Виртуализация списков
49 (частичный рендер списка)|(% style="width:1239px" %)Виртуализация компонентов ASP.NET Core Blazor
Alexandr Fokin 4.1 50 https://docs.microsoft.com/ru-ru/aspnet/core/blazor/components/virtualization?view=aspnetcore-5.0
Alexandr Fokin 5.12 51 |(% style="width:254px" %)Рендер Raw HTML|(% style="width:1239px" %)(((
52 Есть ли в Blazor эквивалент Html.Raw?
53 [[https:~~/~~/reddeveloper.ru/questions/yest-li-v-blazor-ekvivalent-html-raw-jNW4j>>https://reddeveloper.ru/questions/yest-li-v-blazor-ekvivalent-html-raw-jNW4j]]
Alexandr Fokin 5.2 54
55 {{code language="c#"}}
56 @((MarkupString)"<div>Raw html</div>")
57 {{/code}}
Alexandr Fokin 5.12 58 )))
Alexandr Fokin 5.16 59 |(% style="width:254px" %)Тип RenderFragment|(% style="width:1239px" %)(((
60 |(% style="width:867px" %)Позволяет передавать блок кода разметки Blazor в качестве параметра или возвращать как результат функции.
61 [[https:~~/~~/learn.microsoft.com/ru-ru/dotnet/api/microsoft.aspnetcore.components.renderfragment>>https://learn.microsoft.com/ru-ru/dotnet/api/microsoft.aspnetcore.components.renderfragment]]|(% style="width:343px" %)(((
62 |Функция с разметкой.|{{code language="c#"}}RenderFragment MyFunction() => @(<p>hello</>){{/code}}
63 |Вызов OneOf.|{{code language="html"}}<div>
64 @(
65 OneOfHelper.OneOf<Microsoft.AspNetCore.Components.RenderFragment>(
66 value,
67 type1Handler: (typedValue) => @<p>@typedValue.Prop1</p>,
68 type2Handler: (typedValue) => @<p>@typedValue.Prop2</p>,)
69 )
70 );
71 </div>{{/code}}
72 )))
73 |(% style="width:867px" %)Можно использовать при наследовании компонентов, для это зарезервировано имя параметра ChildContent.|(% style="width:343px" %){{code language="html"}}<div>
74 @ChildContent
75 </div>{{/code}}
Alexandr Fokin 5.17 76 |(% style="width:867px" %)Передача разметки в качестве параметра / содержимого. (Например можно использовать для создания компонентов оберток).|(% style="width:343px" %){{code language="html"}}<WrapperComponent>
Alexandr Fokin 5.16 77 <ContentParameter1>content1</ContentParameter1>
78 <ContentParameter2>content2</ContentParameter2>
79 </WrapperComponent>{{/code}}
80 )))
Alexandr Fokin 5.18 81 |(% style="width:254px" %)Атрибуты html тега.|(% style="width:1239px" %)(((
Alexandr Fokin 5.19 82 |(% style="width:549px" %)(((
83 Использование переменной для значения атрибута.
Alexandr Fokin 5.20 84
Alexandr Fokin 5.19 85 Особенность: Blazor не будет рендерить атрибут, если значение атрибута false или null. (Например это можно использовать для атрибута disabled).
86
87 Blazor InputText: conditionally rendering an attribute
88 [[https:~~/~~/stackoverflow.com/questions/58020174/blazor-inputtext-conditionally-rendering-an-attribute>>https://stackoverflow.com/questions/58020174/blazor-inputtext-conditionally-rendering-an-attribute]]
89 )))|(% style="width:665px" %){{code language="html"}}<div autofocus="@(MyModel.isAutoFocus)"></div>
Alexandr Fokin 5.18 90 <div autofocus="@(MyModel.GetIsAutoFocus())"></div>{{/code}}
91 |(% style="width:549px" %)Динамическое формирование атрибутов.|(% style="width:665px" %){{code language="html"}}<div @attributes="HandyFunction()"></div>
92
93 @code{
94 Dictionary<string,object> HandyFunction()
95 {
96 var dict = new Dictionary<string, object>();
97 if(MyModel.isAutoFocus) dict.Add("autofocus",true);
98 return dict;
99 }
100 }{{/code}}
101 )))
Alexandr Fokin 5.21 102 |(% style="width:254px" %)Ссылка на компонент|(% style="width:1239px" %)(((
103 |Add @ref to a Blazor component in a loop
104 [[https:~~/~~/stackoverflow.com/questions/60064510/add-ref-to-a-blazor-component-in-a-loop>>https://stackoverflow.com/questions/60064510/add-ref-to-a-blazor-component-in-a-loop]]|
105 | |
106 )))
Alexandr Fokin 5.14 107 |(% style="width:254px" %)[[Взаимодействие с JavaScript>>doc:.Взаимодействие с JavaScript.WebHome]]|(% style="width:1239px" %)