Blazor: создать корневой путь с параметром

Новый разработчик Blazor здесь ✌️

Я пытаюсь создать простую страницу профиля в корне моего домена. Что-то похожее на instagram.com/nike, но mydomain.com/nike

После запуска dotnet new blazor у меня есть проект blazor по умолчанию с небольшими изменениями. Я удалил счетчик по умолчанию и домашние страницы, а также удалил элемент панели навигации. Имейте только несколько файлов.

Индекс.бритва

@page "/{Username}"

<h1>@Username</h1>

@code {
    [Parameter]
    public string? Username { get; set; }
}

Индекс.razor.css

h1 {
    color: red;
}

Моя проблема в том, что когда у меня есть эта настройка, CSS во всем проекте ломается...

Если я изменю свой путь на что-то вроде

@page "user/{Username}"

Все работает идеально. Так что я думаю, это что-то из-за того, что проект не может правильно построиться. Есть идеи?

Настройка проекта:

Ошибки консоли:

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
91
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Не уверен, ищете ли вы необязательный параметр или нет, но вы можете передать строковый параметр компоненту Blazor следующим образом:

@page "/"
@page "/{Username:alpha}"

Это позволит отображать пользовательский компонент или пользовательский компонент со строковым параметром «Имя пользователя».

@code{
    [Parameter]
    public string Username { get; set; }
}

Это я знаю, но я хочу добиться этого на корневом пути, а не на подпути, как "user/{username}", но "/{username}"

alex 23.04.2024 18:13

Проверьте мое редактирование, оно точно такое же

jon.r 23.04.2024 18:16

какого черта, вроде работает.. Спасибо! Есть ли что-то особенное в «Альфе»? Если я изменю его на что-нибудь другое, например «бета» или «тест», произойдет сбой, но, похоже, он будет работать только с «альфа»

alex 23.04.2024 18:22

альфа - это буквенно-цифровой код. Что странно, вы могли бы подумать, что используете {Username:string}, но это не работает. Я пытался.

jon.r 23.04.2024 18:24

точно... У меня это сработало с :int, но не с :string. Оооочень странно. Еще раз спасибо, 6 часов потрачено на это..

alex 23.04.2024 18:26

Если вы хотите направить на свою страницу оба пути, «domain.com/» и «domain.com/nike», вы можете использовать следующий код:

@page "/{user?}"

@code
{
    [Parameter]
    public string? User { get; set; }
}

'?' символ в {user?} означает, что значение может иметь значение NULL».

Поскольку тип параметров URL-адреса по умолчанию — строковый, вам не нужно явно указывать тип.
Ограничения маршрута

Ваша страница должна выглядеть примерно так: @page "/user/{Username}"

Другие вопросы по теме