Start Debugging

ASP.NET Core

120 статей · Страница4из12

Как отрендерить заголовок, уровень которого (h1-h6) выбирается во время выполнения, в компоненте Blazor

В Razor нет синтаксиса для переменного имени тега, а DynamicComponent рендерит только типы компонентов. Переопределите BuildRenderTree и вызовите builder.OpenElement(0, $"h{level}"). Разбираются проброс атрибутов, почему имя тега нужно ограничивать до того, как оно попадёт в DOM, почему смена уровня вырывает элемент из DOM даже с @key, и вариант с автоматическим уровнем на каскадном значении.

Как скачать файл из компонента Blazor без взаимодействия с JavaScript

Обойдитесь без JS-модуля downloadFileFromStream. Отрисуйте якорь с атрибутом download, указывающий на конечную точку minimal API с TypedResults.File, либо отправьте POST обычной HTML-формой с AntiforgeryToken. Разбираем, почему именно атрибут download мешает улучшенной навигации Blazor перехватить клик, почему data-enhance молча выбрасывает файл, и ловушку с cookie против bearer.

Scalar против Swagger UI для документации OpenAPI в ASP.NET Core 11

Scalar отдаёт 1.02 МиБ сжатого gzip JavaScript и заметно более удобный конструктор запросов. Swagger UI отдаёт 514 КиБ и рендерит OpenAPI 3.2, который .NET 11 теперь генерирует по умолчанию. Измеренные объёмы, разрыв по 3.2, маршрутизация через конечные точки с обеих сторон и детали аутентификации, которые решают выбор.

Zstandard против Brotli и Gzip: сжатие ответов в .NET 11

Zstandard это правильный вариант по умолчанию для динамических ответов API в .NET 11, но не с тем уровнем качества, с которым поставляется провайдер ASP.NET Core. Бенчмарки на реальных JSON-данных показывают, почему качество 1 обгоняет качество 3 по умолчанию и по размеру, и по нагрузке на CPU, когда Brotli всё ещё выигрывает и почему Gzip остаётся только как запасной вариант ради совместимости.

Цепи Blazor Server теперь сами приостанавливаются, когда вкладка простаивает

В .NET 11 Preview 7 появился подключаемый пакет, который приостанавливает интерактивные Server-цепи, пока вкладка браузера скрыта, освобождая память и соединения SignalR, занятые пользователями, которых на самом деле нет.
Назад Вперёд