作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
所以我正在使用 Postman
测试我的一些路由,但我似乎无法通过此调用:
API 函数
[RoutePrefix("api/Employees")]
public class CallsController : ApiController
{
[HttpGet]
[Route("{id:int?}/Calls/{callId:int?}")]
public async Task<ApiResponse<object>> GetCall(int? id = null, int? callId = null)
{
var testRetrieve = id;
var testRetrieve2 = callId;
throw new NotImplementedException();
}
}
postman 请求
http://localhost:61941/api/Employees/Calls不工作
错误:
{
"Message": "No HTTP resource was found that matches the request URI 'http://localhost:61941/api/Employees/Calls'.",
"MessageDetail": "No action was found on the controller 'Employees' that matches the request."
}
http://localhost:61941/api/Employees/1/Calls作品
http://localhost:61941/api/Employees/1/Calls/1作品
知道为什么我不能在我的前缀和自定义路由之间使用可选项吗?我已经尝试将它们组合到一个自定义路由中,但这并没有改变任何东西,每当我尝试删除 id 时,它都会导致问题。
最佳答案
可选参数必须在路由模板的末尾。所以你想做的事是不可能的。
Attribute routing: Optional URI Parameters and Default Values
你要么改变你的路线模板
[Route("Calls/{id:int?}/{callId:int?}")]
或者创建一个新 Action
[RoutePrefix("api/Employees")]
public class CallsController : ApiController {
//GET api/Employees/1/Calls
//GET api/Employees/1/Calls/1
[HttpGet]
[Route("{id:int}/Calls/{callId:int?}")]
public async Task<ApiResponse<object>> GetCall(int id, int? callId = null) {
var testRetrieve = id;
var testRetrieve2 = callId;
throw new NotImplementedException();
}
//GET api/Employees/Calls
[HttpGet]
[Route("Calls")]
public async Task<ApiResponse<object>> GetAllCalls() {
throw new NotImplementedException();
}
}
关于c# - 中间带有属性路由的 Web Api 可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38729352/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!