如何从 config.json 为控制器中的所有动作设置路由的公共部分(前缀)?
How to set common part of route (Prefix) from config.json for all Actions in Controller?
我有一个带有 Route 属性的控制器,每个 Action 都有自己的 Route,例如:
[Route("api/version/v1")]
public class MyController : ControllerBase
{
[Route("receipts/verifyReceipt")]
public IActionResult VerifyReceipt(...){....}
...... several actions with diffrent Routes
}
我的目标是api路线:'api/version/v1/receipts/verifyReceipt'
如何从 config.json
设置前缀 [Route("api/version/v1")]
我试过从 Startupt.cs
开始设置
app.UseMvc(routes =>
{
routes.MapRoute( "default", apiCommon.Value);
});
其中 'apiCommon.Value' 是我的前缀 'api/version/v1' 将路由属性添加到 MyController 时:
[Route("", Name = "default")]
但是好像没有效果。 api 路由如下所示:'/receipts/verifyReceipt'
知道我做错了什么吗?
我认为 UsePathBase()
最符合您的需求。它在指定的路径库使用后进行路由
在app.UseRouting()
之前调用
app.UsePathBase(apiCommon.Value);
上找到了我的问题的解决方案
我有一个带有 Route 属性的控制器,每个 Action 都有自己的 Route,例如:
[Route("api/version/v1")]
public class MyController : ControllerBase
{
[Route("receipts/verifyReceipt")]
public IActionResult VerifyReceipt(...){....}
...... several actions with diffrent Routes
}
我的目标是api路线:'api/version/v1/receipts/verifyReceipt'
如何从 config.json
设置前缀[Route("api/version/v1")]
我试过从 Startupt.cs
开始设置app.UseMvc(routes =>
{
routes.MapRoute( "default", apiCommon.Value);
});
其中 'apiCommon.Value' 是我的前缀 'api/version/v1' 将路由属性添加到 MyController 时:
[Route("", Name = "default")]
但是好像没有效果。 api 路由如下所示:'/receipts/verifyReceipt'
知道我做错了什么吗?
我认为 UsePathBase()
最符合您的需求。它在指定的路径库使用后进行路由
在app.UseRouting()
app.UsePathBase(apiCommon.Value);