asp.net-core - 如何在 Razor Pages 路由的开头添加应用程序名称?
问题描述
假设我有一个 RazorPages 应用程序,其页面位于 Pages 文件夹下的文件夹中,如下图所示:
很标准。我希望这个应用程序可用于不同的客户端,以便他们使用不同的 URL 来访问它。我可以在 RRate\Index.cshtml 文件中使用@page "/RRate/Index/{sName}"
指令,以便 URL<root>\RRate\Index\client_name
将 client_name 绑定到 sName。
我的问题是:我可以使用这样的 URL,<root>\client_name\RRate\Index
以便客户端名称是路由的第一部分吗?我将如何实现这样的路线?
毫不奇怪,@page "/{sName}/RRate/Index"
指令不起作用。
我正在使用 .NET Core 3.1,services.AddRazorPages();
并且endpoints.MapRazorPages();
正在启动中。
我看过,endpoints.MapDynamicControllerRoute()
但这种方法似乎与 Razor 页面不兼容。我错了吗?
解决方案
答案在@mj1313 提到的文章中。
我为每个页面添加了 PageRoutes(如果有办法在一个路由中执行此操作,我会徘徊),如下所示options.Conventions.AddPageRoute("/RRate/Index", "{survey}/RRate/Index");
:
推荐阅读
- algorithm - 用主定理求解 4T(n/5) + log5(n * sqrt(n))
- sql - 动态 SQL 错误地查找表变量
- c - 为什么即使输入的值使条件为假,这个while循环代码也不起作用?
- c - 编写字符串比较函数
- java - 如何在 QuerydslPredicateExecutor 中使用 IN 包含忽略大小写?
- r - 计算R中数据框中文本的出现次数
- token - KeyCloak 刷新外部 IDP 令牌
- c# - 为什么 Post 操作在 Postman 中有效,而不是在 C# 中
- python - 如何用替换列标题列表替换字符串中的列标题?
- c - 为什么在循环中更改数组元素会删除数组