我试图在ASP.NET核心应用程序中创建一个API方法,该方法可能接收或不接收整数输入参数。我有下面的代码,但是有一个错误。我做错了什么?
// GET: api/mycontroller/{id}
[HttpGet("id:int?")]
public IActionResult Get(int id = 0)
{
// Some logic here...
}下面是我遇到的错误:

发布于 2016-06-29 21:26:15
"id:int?"不是一个有效的路由模板,它只是一个字符串文本(就像您期望请求Url看起来像不允许的http://server/api/MyController/id:int?一样)。有趣的是,这仅仅是因为?字符;如果您删除了这个字符,那么文字将被允许(尽管它是无用的)。
而"{id:int?}"是一个正确的路由模板,并将正确工作,即Url看起来像http://server/api/MyController/42或http://myserver/api/MyController/,这将给出默认值
所以这个方法应该是这样的:
// GET: api/mycontroller/{id}
[HttpGet("{id:int?}")]
public IActionResult Get(int id = 0)
{
// Some logic here...
}https://stackoverflow.com/questions/38109927
复制相似问题