【发布时间】:2020-12-13 17:07:32
【问题描述】:
我正在尝试使用新的 Blazor WASM 创建一个 github pages 网站。我几乎每天都在工作中使用 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 页面?甚至使用类似于 nameOf() 或 getType 的函数的普通链接(我已经检查了 a 和 NavLink) ()?
我现在最好的选择是向基础添加一个 URL 属性,但似乎我不应该输入两次“/sample”。 (这并不难,这是事情的原理!)
我还看到了一些人注入 NavigationManager 然后使用它来推断 URL 的示例,但是对于每个页面也必须重复此操作。我见过一些从 RouteData.Values 获取页面指令的示例,但那些是 Razor 页面。我不知道如何创建 RouteData 对象或将其用作静态类。
【问题讨论】:
标签: c# asp.net-mvc blazor webassembly blazor-webassembly