Я пытаюсь создать сайт страниц github с новым Blazor WASM. Я использую C # почти каждый день в работе, но я никогда раньше не использовал Blazor / Razor / ASP.NET, поэтому вполне возможно, что я пытаюсь использовать серверные методы, которые здесь не сработают.
У меня есть группа страниц, и я хочу показать небольшой предварительный просмотр каждой страницы со ссылкой на эту страницу на домашней странице. Все эти страницы реализуют один и тот же базовый класс компонента. Например, Sample.razor может выглядеть так:
@page "/sample"
@inherits GroupBase
<!-- html here -->
@code {
public override string Name { get; } = "Sample";
}
Index.razor может выглядеть так
@page "/"
@foreach (GroupBase p in mPagesToPreview)
{
<a href=" ">@p.Name</a>
}
@code {
List<GroupBase> mPagesToPreview = new List<GroupBase> { new Sample() };
}
Есть ли способ перейти на страницу Sample без явного ввода / sample? Или даже используя обычную ссылку (я проверил и a, и NavLink) с функцией, похожей на nameOf () или getType ()?
Мой лучший вариант прямо сейчас - добавить свойство URL в базу, но похоже, что мне не нужно вводить / образец дважды. (Это не сложно, это принцип!)
Я также видел несколько примеров, когда люди вводили NavigationManager, а затем использовали его для вывода URL-адреса, но это также нужно было повторять для каждой страницы. Я видел несколько примеров, в которых директива страницы была получена из RouteData.Values , но это были страницы Razor. Я не мог понять, как создать объект RouteData или использовать его как статический класс.