到基础 Razor 页面的多个别名路由

Posted

技术标签:

【中文标题】到基础 Razor 页面的多个别名路由【英文标题】:Multiple Alias Routes to base Razor Page 【发布时间】:2020-11-16 20:16:18 【问题描述】:

我对 Razor 页面很陌生,我正在尝试弄清楚如何复制我在当前 Angular 页面中的路由。

我有一个基本剃须刀页面,根据传递给它的参数,该页面将填充不同的数据。这很容易,我知道该怎么做。但是,我的问题在于路由,因为我希望能够传递基于基本 URL 的可读参数。例如,我希望能够做到:

https://myURL/Band1 https://myURL/Band2

并且都指向同一个页面(但不是索引页面),使用参数“Band1”或“Band2”来显示相关信息。

我了解如何使用参数,以及如何获取数据,我不清楚的是如何根据基本 URL 进行此路由。如果是 https://myURL/b/Band1,我可以看到我会怎么做,因为我会创建一个“b”页面并接受参数。

但是如果没有 URL 的中间部分,如何做到这一点呢?我需要能够这样做才能不破坏现有链接。

谢谢!

【问题讨论】:

【参考方案1】:

Razor 页面的 docs 建议您可以创建一个名为 Index.cshtml 的页面,这将作为 URL 中未指定页面的默认设置。

编辑 如果您想保留无参数索引页面,但在提供附加 URL 部分时让您的页面取而代之,请在您的页面中尝试以下操作:

@page "/bandName"

【讨论】:

我确实有一个索引页面,但我希望该页面与 Band1、Band2 所指示的页面不同。 MyURL 应该放在一页上。 MyURL/Band1 和 MyURLBand2 应该位于同一页面,但不是 Index。 我会试试看的!这似乎是解决方案! 是的,这就是解决方案!感谢您的回答!如果我可以投票,我绝对会!

以上是关于到基础 Razor 页面的多个别名路由的主要内容,如果未能解决你的问题,请参考以下文章

ASP.Net MVC开发基础学习笔记:三Razor视图引擎控制器与路由机制学习

ASP.Net MVC开发基础学习笔记:Razor视图引擎控制器与路由机制学习

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

如何匹配 Razor Pages 中的多个路由?

迁移到 ASP.NET 3.1 - 从登录控制器路由到 Razor 页面主页索引页面不再工作

ASP.NET Core 2.2 Razor 页面中的自定义路由