如何在 Razor Pages 路由的开头添加应用程序名称?

Posted

技术标签:

【中文标题】如何在 Razor Pages 路由的开头添加应用程序名称?【英文标题】:How can I add an application name at the start of a Razor Pages route? 【发布时间】:2021-04-01 13:29:24 【问题描述】:

假设我有一个 RazorPages 应用程序,其页面位于 Pages 文件夹下的文件夹中,如下图所示:

相当标准。我希望这个应用程序可用于不同的客户端,以便他们使用不同的 URL 来访问它。我可以在 RRate\Index.cshtml 文件中使用 @page "/RRate/Index/sName" 指令,以便 URL <root>\RRate\Index\client_name 将 client_name 绑定到 sName。

我的问题是:我可以使用像 <root>\client_name\RRate\Index 这样的 URL,以便客户端名称是路由的第一部分吗?我将如何实现这样的路线?

毫不奇怪,@page "/sName/RRate/Index" 指令不起作用。

我在启动时使用 .NET Core 3.1、services.AddRazorPages();endpoints.MapRazorPages();

我查看了endpoints.MapDynamicControllerRoute(),但这种方法似乎与 Razor 页面不兼容。我错了吗?

【问题讨论】:

奇怪,它可以在我这边工作,你能给我们看看你的 startup.cs,也看看这个article。 谢谢@mj1313!通常,真正的帮助是指向准确文章的链接! 【参考方案1】:

答案在@mj1313 提到的article 中。

我为每个页面添加了 PageRoutes(如果有办法在一个路由中执行此操作,我会徘徊),如下所示:options.Conventions.AddPageRoute("/RRate/Index", "survey/RRate/Index");

【讨论】:

以上是关于如何在 Razor Pages 路由的开头添加应用程序名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Azure Active Directory 身份验证添加到 Razor Pages 应用程序?

ASP.NET Razor Pages 路由参数命名页面

使用 Razor Pages 在路由中间定义所需的路径参数?

如何在asp.net core razor pages 2.2中设置日期格式和文化

Razor 页面路由到默认页面的问题

带有 id 的 asp.net core 2 razor pages 路由