gpt4 book ai didi

c# - ASP.NET Core 子文件夹上的 MapFallbackToPage

转载 作者:行者123 更新时间:2023-12-04 16:25:24 30 4
gpt4 key购买 nike

我正在尝试在我的 ASP.NET Core 应用程序中创建到 Razor 页面的后备路由,以便我可以在子路径上托管服务器端 Blazor 应用程序。按照文档中的说明从根创建回退路由。但我希望它是我在路线上的后备 /Admin/* .
我当前的代码如下所示:

app.UseEndpoints(endpoints =>
{
// ...
endpoints.MapFallbackToPage("/Admin", "/Admin/_Host");
});
我也尝试使用以下设置:
app.UseEndpoints(endpoints =>
{
// ...
endpoints.MapFallbackToPage("/Admin/{*segment}", "/Admin/_Host");
});
当我为 Blazor 应用程序中存在的页面输入 URL 时,这两种配置最终都会生成 404。
我确认导航 Blazor 应用程序使用 <NavLink>确实有效。
这样做的正确方法是什么?

最佳答案

事实证明,我应该使用以下代码:

app.UseEndpoints(endpoints =>
{
// ...
endpoints.MapFallbackToPage("/Admin/{**segment}", "/Admin/_Host");
});
请注意 **在图案中。这是对 URL 中 /Admin 之后的所有段的递归映射。部分。我只使用了一颗星,这导致深度嵌套的 URL 与模式不匹配。
我了解到该模式为 MapFallbackToPage方法接受常规路由模式。
有兴趣了解更多: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-5.0
替代方案
您还可以添加 @page "/Admin/{**segment}" _Host.cshtml 顶部的指令.您必须删除 MapFallbackToPage调用 Startup.cs .

关于c# - ASP.NET Core 子文件夹上的 MapFallbackToPage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65494101/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com