#c# #asp.net-core #razor #razor-pages
#c# #asp.net-core #razor #страницы razor
Вопрос:
Я работаю над проектом Razor Pages. Это решение состоит из нескольких проектов, а именно «Server», который управляет службами для внедрения зависимостей и является проектом запуска. «Приложение», которое содержит индексную страницу и общие компоненты, а также несколько проектов «Module», которые являются независимыми областями сайта. Мне нужно добавить новый модуль к этому решению с целевой страницей. Я создал новый проект, установил все ссылки на другие проекты в solution и создал там страницу со строкой «@page » / moduleC»». Но если я запускаю решение и перехожу на эту страницу — оно показывает страницу 404. Та же конфигурация отлично работает с другими модулями. Требуются ли какие-то дополнительные действия, чтобы разрешить маршрутизацию между несколькими проектами?
Ответ №1:
https://digitteck.com/frontend/blazor/blazor-page-in-another-assembly/
Компонент Router отвечает за сопоставление страниц razor.
Вам нужно будет добавить другие сборки, используя параметр AdditionalAssemblies.
<CascadingAuthenticationState>
<Router AppAssembly="@typeof(Program).Assembly" AdditionalAssemblies="@_extraAssemblies">
<Found Context="routeData">
...
</Found>
<NotFound>
...
</NotFound>
</Router>
</CascadingAuthenticationState>
@code{
private List<System.Reflection.Assembly> _extraAssemblies = new List<System.Reflection.Assembly>()
{
typeof(OtherProject.SomeObjectInOtherProject).Assembly,
};
}
Комментарии:
1. В моем случае это было именно то, что мне было нужно.
Ответ №2:
Я предполагаю, что вы работаете над приложением Blozor. Если мое предположение верно, пожалуйста, импортируйте ссылку внутри _Import.razor в вашем Balzor.WebAssembly или Balzor.Серверный проект.
Пример
@используя <—ProjectName—>.ComponentsLibrary
@используя <—ProjectName—>.Библиотека компонентов.<—ИмякомпонЕнта—>
Комментарии:
1. Я работаю над приложением Blazor, и я уже добавил ссылку на свой проект на странице _Imports
2. @JohnDiGriz, В моем примере приложения я могу перейти на страницу SharedComponents с помощью
NavLink
, а также с помощьюNavigationManager.NavigateTo
также напрямую, изменив маршрут в URL-адресе broswer. не уверен, в чем именно ваша проблема. Попробуйте отладить ее, сохранив точки торможения в _App.razor также в новом компоненте. Попробуйте очистить кэш и удалить историю браузера и запустите приложение.3. можете ли вы рассказать мне о шагах? Потому что я пытался создать образец приложения, но проблема все еще существует. Возможно, я забыл что-то еще
4. @JohnDiGriz Ниже приведены шаги, которые я выполнил * Создал компонент Map в SharedComponentsProject * Добавил ссылку в _Imports.razor * Создал новый компонент razor в проекте пользовательского интерфейса и использовал имя компонента внутри вновь созданного компонента и упомянул
@page <--url-->
* Добавил NavLink на странице навигации и упомянул сценарий path 2 * Добавил кнопку в компоненте Home в упомянутом событииNavigationManger with path
компонента, который я хочу перенаправить, Оба случая сработали для меня.5. Я не уверен, что именно я сделал, но после нескольких дней возни с ней, она начала работать нормально. Спасибо