在 .NET CORE 中替换属性路由中的自定义占位符
Replace custom placeholder in attribute routing in .NET CORE
如何在 .Net Core 2.1
中的每条路线之前替换自定义占位符
例如{serverkey}
[Route("api/{serverkey}/[controller]")]
[ApiController]
[AuthorizationFilter]
public class MonitoringController : Controller
{
// Code...
}
我希望每个 url 都像 api/key/Monitoring/Action
。所以我需要替换每个 request/route.
中的键
所以基本上有什么方法可以在每个请求映射到此控制器之前替换占位符 {serverkey}
或类似 {serverkey:key}
甚至 [serverkey]
的内容。
我知道 [controller]
可能会被 .net core
自动替换,但我找不到它。
提前致谢。
我可以使用 IRouteTemplateProvider
创建自定义 route
public class CustomRouteAttribute : Attribute, IRouteTemplateProvider
{
string serverKey = string.Empty;
public CustomRouteAttribute()
{
string serverKey = "Your Key";
}
public string Template => $"api/{serverKey}/[controller]";
public int? Order { get; set; }
public string Name { get; set; }
}
它会在每个 route
之前添加您的密钥。
用法:在您的 controller
上将其用作 attribute
//[Route("api/[controller]")]
[CustomRoute]
[ApiController]
public class DemoController : ControllerBase
{}
对于示例:
http://localhost:52264/api/Controller/Action
会变成
http://localhost:52264/api/Yourkey/Controller/Action
如何在 .Net Core 2.1
例如{serverkey}
[Route("api/{serverkey}/[controller]")]
[ApiController]
[AuthorizationFilter]
public class MonitoringController : Controller
{
// Code...
}
我希望每个 url 都像 api/key/Monitoring/Action
。所以我需要替换每个 request/route.
所以基本上有什么方法可以在每个请求映射到此控制器之前替换占位符 {serverkey}
或类似 {serverkey:key}
甚至 [serverkey]
的内容。
我知道 [controller]
可能会被 .net core
自动替换,但我找不到它。
提前致谢。
我可以使用 IRouteTemplateProvider
创建自定义route
public class CustomRouteAttribute : Attribute, IRouteTemplateProvider
{
string serverKey = string.Empty;
public CustomRouteAttribute()
{
string serverKey = "Your Key";
}
public string Template => $"api/{serverKey}/[controller]";
public int? Order { get; set; }
public string Name { get; set; }
}
它会在每个 route
之前添加您的密钥。
用法:在您的 controller
attribute
//[Route("api/[controller]")]
[CustomRoute]
[ApiController]
public class DemoController : ControllerBase
{}
对于示例:
http://localhost:52264/api/Controller/Action
会变成
http://localhost:52264/api/Yourkey/Controller/Action