在ASP.NET Core中,如果需要在路由模板中包含多个可选参数,可以使用括号将它们括起来,然后在控制器方法中使用默认值来处理未提供参数的情况。以下是一个示例:
在路由模板中包含多个可选参数:
[Route("api/products/{productId}/{category?}/{subcategory?}")]
public IActionResult GetProduct(int productId, string category = null, string subcategory = null)
{
// ...
}
在控制器方法中使用默认值来处理未提供参数的情况:
[HttpGet("products/{id}/{category?}/{subcategory?}")]
public IActionResult Get(int id, string category = null, string subcategory = null)
{
// ...
}
这样,即使只提供了一个参数,例如“/api/products/123”,也可以正确地调用控制器方法并使用默认值来处理其他参数。