Razor Pages中@page指令中的强类型路由

时间:2019-03-01 09:23:55

标签: asp.net-core razor-pages

在ASP.NET Core Razor页面上,我们可以执行以下操作来更改默认的基于文件夹的路由:

@page "/xxx/yyy"

但是尝试使用某些类Constants.Routes中的强类型属性来执行此操作

public const string Myroute = "/mysuperroute"; 

@page @Constants.Routes.Myroute

我在编译时遇到错误The 'page' directive expects a string surrounded by double quotes.

有没有解决的办法?我想通过选项避免路由重复 例如https://docs.microsoft.com/en-us/aspnet/core/razor-pages/razor-pages-conventions?view=aspnetcore-2.2#configure-a-page-route 谢谢

2 个答案:

答案 0 :(得分:1)

聚会晚了一点,但是我遇到了同样的问题,发现float and real (Transact-SQL)将该组件与给定的路由模板相关联。

因此,您可以在剃须刀组件中执行以下操作,并将其放在{host}:{port} / test下:

@attribute [Microsoft.AspNetCore.Components.RouteAttribute(Href)]


@code {
  public const string Href = "test";
}

您现在可以在NavLink中执行以下操作:

<NavLink class="nav-link" href="@TestComponent.Href">
    Test Entry
</NavLink>

RouteAttribute

答案 1 :(得分:0)

我不知道.NET Core 3.1是否有用,但是RouteAttribute不适用于RazorPages。

@page
@attribute [Microsoft.AspNetCore.Razor.Hosting.RazorCompiledItemMetadata("RouteTemplate", MyRoutes.QualificationQueue)]