我正在 VS2015、C#、ASP.NET5 MVC6 堆栈中构建 Restful 风格的 API,但在路由方面遇到了一些麻烦。
我直接在控制器中使用属性:
[HttpGet("machine/{machineId}-{cnt:int}")]
public IActionResult GetReportsByMachineId(string machineId, int cnt)
{
var item = _reportRepository.GetReportsByMachineId(machineId, 0, cnt);
if ((item == null) || (!item.Any()) )
{
return HttpNotFound();
}
return new ObjectResult(item);
}
当我打电话时它就可以工作- 我从数据库api/report/machine/[machineName]-5
接收文件。5
但我想cnt
使用默认值使参数可选 - 所以调用api/report/machine/[machineName]
是有效的。
基于http://stephenwalther.com/archive/2015/02/07/asp-net-5-deep-dive-routing我到目前为止尝试过:
[HttpGet("machine/{machineId}-{cnt:int=10}")]
- 控制器不捕捉api/machine/{machineName}
(我得到欢迎页面代码)
[HttpGet("machine/{machineId}-{cnt?}")]
- 应用程序无法启动(我什至没有获得 MVC 欢迎页面)
[HttpGet("machine/{machineId}-{cnt:int?}")]
- 应用程序无法启动(如上)
有任何想法吗?
整个控制器的代码(我没有指定任何其他路线): http: //pastebin.pl/view/11050284