【发布时间】:2026-01-15 00:05:02
【问题描述】:
如何在.Net Core 2.1 中的每条路线之前替换自定义占位符
例如{serverkey}
[Route("api/{serverkey}/[controller]")]
[ApiController]
[AuthorizationFilter]
public class MonitoringController : Controller
{
// Code...
}
我希望每个网址都像 api/key/Monitoring/Action。所以我需要在每个请求/路由中替换键。
所以基本上有什么办法可以在每个请求映射到这个控制器之前替换占位符{serverkey} 或类似{serverkey:key} 甚至[serverkey]。
我知道有一种方法,例如 [controller] 会自动替换为 .net core,但我找不到。
提前致谢。
【问题讨论】:
-
{serverKey}值从何而来? -
替换是什么意思?将
[Route("api/{serverkey}/[controller]")]属性放在控制器顶部,并在操作方法中访问该值(例如[HttpGet] public string Get(string serverkey))还不够吗? -
我在 appsetting.json 中添加了
serverKey。但是我需要找到一种方法来用这个键替换路由占位符。 -
@Voodoo url 中提供的
serverkey与 appsettings 文件中的不匹配会发生什么情况?我认为您可以使用自定义AuthorizeAttribute来解决这个问题 -
@bmartins 我不想从输入中获取密钥,但我希望将我的路由替换为我自己存储的密钥。
标签: c# asp.net-core .net-core routing asp.net-core-webapi