【发布时间】:2021-08-12 22:53:30
【问题描述】:
我对 api 控制器属性路由有疑问。 API 接收到一个获取请求,其中包含到路由的扫描条码:"api/[controller]/{userId}/{barcodeId}"。条形码在哪里:0015A765248。
但我们现在有一些采用这种格式的新条形码:BBRT058/639。
我通过调试发现新条形码中额外的/ 导致了问题,因为现在无法访问 API 控制器。
我认为它正在尝试访问控制器:"api/[controller]/{userId}/{barcodeId}/{barcodeID}"
不存在的。是否可以修改 API 控制器路由属性以接受包含附加 / 的barcodeId?
我被告知,以任何方式修改新的条形码样式实际上都不是代码明智的选择。
我考虑过创建一个新的控制器来接受新的条形码:例如"api/[controller]/{userId}/{barcodeIdpart1}/{barcodeIDpart2}"。
但我不确定是否创建一个与当前控制器重复的新控制器,唯一的区别是路由是个好主意。此外,这两种条形码格式将来可能仍会使用。
【问题讨论】:
-
这能回答你的问题吗? Route parameter with slash "/" in URL
-
这是 ASP.NET 的答案,而不是 ASP.NET Core。
-
请记住,这就是发明查询字符串的原因。传递不能在 URL 路径中的数据。
标签: c# api asp.net-core-webapi