在 Blazor 中创建子页面的 href
Create href to subpage in Blazor
我的页面有这个指令 @page "/sales/reports"
所以它加载在 https://localhost/sales/reports
路由。
我想创建 link <a href="">Report 1</a>
将指向一个子页面 /sales/reports/{id}
- 例如 https://localhost/sales/reports/8c5b8c1c-12b5-43ee-92c9-8d3bcb8644a4
但不确定我在 href 中放了什么我的锚当我简单地把 <a href="@myGuid">Report 1</a>
link 有一个 https://localhost/8c5b8c1c-12b5-43ee-92c9-8d3bcb8644a4
的形式。我需要硬编码 <a href="sales/reports/@myGuid">Report 1</a>
还是有更聪明的方法?
'subpage' 一词并不存在。
只有 'pages' 而他们有 'routes'。有时路线会出现嵌套,如您的示例所示,但这并不会使它成为 'subpage'.
你的问题的答案是,是的,你需要包括你想去的 'page' 的路线。
<a href=@($"sales/reports/{@myGuid}")>Report 1</a>
这并不一定意味着在页面本身中进行硬编码。您可以创建一个帮手 class 来为您完成这些工作。例如:
class ReportPathCreator
{
public static string ReportRouteFor(Guid reportGuid) => $"sales/reports/{reportGuid}";
}
然后使用:
<a href=@(ReportPathCreator.ReportRouteFor(myGuid))>Report 1</a>
然后,如果您选择更改托管报告的路线,您只需在助手中进行更改 class,您网站中的所有锚点元素都会自动选择新路线。
更新
您还可以使用静态 class 生成模板供您使用,而不是 @page 指令:
class ReportPathCreator
{
public static string ReportRouteFor(Guid reportGuid) => $"sales/reports/{reportGuid}";
public static string ReportTemplate = "sales/reports/{reportGuid:guid}";
}
然后,不使用@page 指令,而是使用:
@attribute [Route(ReportPathCreator.ReportTemplate)]
我的页面有这个指令 @page "/sales/reports"
所以它加载在 https://localhost/sales/reports
路由。
我想创建 link <a href="">Report 1</a>
将指向一个子页面 /sales/reports/{id}
- 例如 https://localhost/sales/reports/8c5b8c1c-12b5-43ee-92c9-8d3bcb8644a4
但不确定我在 href 中放了什么我的锚当我简单地把 <a href="@myGuid">Report 1</a>
link 有一个 https://localhost/8c5b8c1c-12b5-43ee-92c9-8d3bcb8644a4
的形式。我需要硬编码 <a href="sales/reports/@myGuid">Report 1</a>
还是有更聪明的方法?
'subpage' 一词并不存在。
只有 'pages' 而他们有 'routes'。有时路线会出现嵌套,如您的示例所示,但这并不会使它成为 'subpage'.
你的问题的答案是,是的,你需要包括你想去的 'page' 的路线。
<a href=@($"sales/reports/{@myGuid}")>Report 1</a>
这并不一定意味着在页面本身中进行硬编码。您可以创建一个帮手 class 来为您完成这些工作。例如:
class ReportPathCreator
{
public static string ReportRouteFor(Guid reportGuid) => $"sales/reports/{reportGuid}";
}
然后使用:
<a href=@(ReportPathCreator.ReportRouteFor(myGuid))>Report 1</a>
然后,如果您选择更改托管报告的路线,您只需在助手中进行更改 class,您网站中的所有锚点元素都会自动选择新路线。
更新
您还可以使用静态 class 生成模板供您使用,而不是 @page 指令:
class ReportPathCreator
{
public static string ReportRouteFor(Guid reportGuid) => $"sales/reports/{reportGuid}";
public static string ReportTemplate = "sales/reports/{reportGuid:guid}";
}
然后,不使用@page 指令,而是使用:
@attribute [Route(ReportPathCreator.ReportTemplate)]