asp.net-core - 如何从 config.json 为控制器中的所有操作设置路由的公共部分(前缀)?
问题描述
我有一个带有 Route 属性的控制器以及每个带有它自己的 Route 的 Action,例如:
[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'
如何[Route("api/version/v1")]
从 config.json设置前缀
我尝试从 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);
推荐阅读
- python - Numpy 滚动 Columwise 相关性
- sql - SQL选择小于特定日期的最大日期
- python - sklearn.Normalization 是否有可用的 invert_transform 方法
- html - 用于更改图像的媒体查询
- hibernate - 不获取在休眠中插入的最近记录
- javascript - 在 TypeScript 中使用 subscribe 方法操作值
- c# - 为什么从 VS 2013 而不是 VS 2017 发布时,带有嵌入式 Adobe Reader Control 的应用程序可以工作?
- c++ - 未创建日志文件
- python - Django 中的实时搜索
- c# - 来自其他列表的新列表