Перемещение компонентов Blazor в проект общих компонентов

Я пытаюсь настроить свой сервер Blazor на wasm. большая часть проекта уже разработана, но мы все равно хотим двигаться дальше. Вот где возникает сомнение. Я создал проект компонентов, чтобы иметь возможность делиться ими, но я пытаюсь переместить и страницы туда, и теперь маршрутизация ничего не улавливает и получает то, что есть в индексе, и ничего более. как я сообщаю своему приложению, что оно должно отображать страницы из проекта в .components (библиотека компонентов Blazor), а не в том, что находится в .cliente (проект сервера Blazor)


person Daniel Vega    schedule 16.04.2021    source источник
comment
Вы можете запустить свой SPA как в серверном, так и в WASM-режимах, если хотите - найдите Blazor AllInOne, и вы должны найти ссылки на мою статью, в которой описывается, как запускать сервер и WASM на одном сайте.   -  person MrC aka Shaun Curtis    schedule 16.04.2021


Ответы (1)


Я предполагаю, что у вас есть структура с этими 3 проектами:

  • ClientWasm - ›Проект, в котором находится ваша индексная страница и где вы хотите использовать свои компоненты
  • Components - ›Проект с компонентами (типа <Project Sdk="Microsoft.NET.Sdk.Razor">)
  • ClientServer - ›Старый серверный проект Blazor

Теперь. Если вы хотите использовать компонент в ClientWasm, который находится в Components, вы должны добавить ссылку на Компоненты в ClientWasm

Если у вас есть страницы с маршрутами (в Components), вам нужно добавить дополнительные сборки в ClientWasm:

@*App.razor in ClientWasm project*@
<Router AppAssembly="@typeof(Program).Assembly"
            AdditionalAssemblies="new[] { typeof(Components.SomePage).Assembly}">
person Alamakanambra    schedule 16.04.2021
comment
где у меня проблемы, так это то, что у меня есть несколько страниц с маршрутами в проекте компонентов. и его не выбрали, есть ли способ заставить это работать? - person Daniel Vega; 16.04.2021
comment
Извините, код был неправильным (исправить сейчас). Конечно, вам придется добавлять дополнительные сборки из проектов компонентов. Это заставит страницы из проекта Components работать. - person Alamakanambra; 16.04.2021