asp- 包含多个 asp- 路由的页面未找到页面
asp-page with multiple asp-routes not finding page
我有一个带有以下@page 和模型的 Razor 页面:
@page "{slug1}/{slug2}/{someId:Guid?}/{step:int}"
--
public async Task<PageResult> OnGetAsync(string slug1, string slug2, Guid? someId, int step = 1)
{
//...
}
在另一个页面上,我 link 像这样访问有问题的页面(注意缺少的“someId”):
<a asp-page="thepage" asp-route-Slug1="slug1" asp-route-Slug2="slug2" asp-route-Step="3">Open step 3</a>
但是 link 不起作用(而是 link 到它自己的页面)。如果 asp-route-SomeId
出现在 link 中(具有有效的 GUID - 不为空),link 工作 - 有和没有 asp-route-Step
.
此外,仅使用两个 slug 调用 link 也能正常工作。
如果我从@page 中删除 /{step:int}
它也可以工作,但是 URL 将以 ?Step=3
结尾,我想避免这种情况。
这是我没有看到的某种限制,还是我做错了什么?
我的目标是能够 link 到有和没有 someId
的页面,在 URL 和没有?在 URL.
你可以试试把{someId:Guid?}
放在{step:int}
之后:
@page "{slug1}/{slug2}/{step:int}/{someId:Guid?}"
我有一个带有以下@page 和模型的 Razor 页面:
@page "{slug1}/{slug2}/{someId:Guid?}/{step:int}"
--
public async Task<PageResult> OnGetAsync(string slug1, string slug2, Guid? someId, int step = 1)
{
//...
}
在另一个页面上,我 link 像这样访问有问题的页面(注意缺少的“someId”):
<a asp-page="thepage" asp-route-Slug1="slug1" asp-route-Slug2="slug2" asp-route-Step="3">Open step 3</a>
但是 link 不起作用(而是 link 到它自己的页面)。如果 asp-route-SomeId
出现在 link 中(具有有效的 GUID - 不为空),link 工作 - 有和没有 asp-route-Step
.
此外,仅使用两个 slug 调用 link 也能正常工作。
如果我从@page 中删除 /{step:int}
它也可以工作,但是 URL 将以 ?Step=3
结尾,我想避免这种情况。
这是我没有看到的某种限制,还是我做错了什么?
我的目标是能够 link 到有和没有 someId
的页面,在 URL 和没有?在 URL.
你可以试试把{someId:Guid?}
放在{step:int}
之后:
@page "{slug1}/{slug2}/{step:int}/{someId:Guid?}"