Routing 到.NET核心Web API控制器的多个路由

Routing 到.NET核心Web API控制器的多个路由,routing,asp.net-core-webapi,Routing,Asp.net Core Webapi,在.NET核心Web API中,我编写了一个用于访问文件(用于授权目的)的控制器 控制器只需获取一个路径,读取路径上的文件,并以浏览器可以显示的方式返回文件(图像) 控制器看起来像 [HttpGet("{path}", Name = "GetFile")] public IActionResult GetFile(string path) { // read the file & content type return File(f, contentType); } 如果我只使用文件名(

在.NET核心Web API中,我编写了一个用于访问文件(用于授权目的)的控制器

控制器只需获取一个路径,读取路径上的文件,并以浏览器可以显示的方式返回文件(图像)

控制器看起来像

[HttpGet("{path}", Name = "GetFile")]
public IActionResult GetFile(string path)
{
  // read the file & content type
  return File(f, contentType);
}
如果我只使用文件名(文件是控制器),一切都很好,例如

问题是,当我使用子目录时,404的路由失败,并且没有调用控制器方法。当例如

http://localhost:61261/api/v1/Files/subdirectory/test.png
在第二个示例中,路径变量是“subdirectory/test.png”,我该如何进行路由呢

编辑:我正在寻找某种通配符,因为在上传/下载文件时,子目录可以来去自如。
不可能使用静态文件,因为它们是公开的(无法使用身份验证/授权,并且文件不在WWroot中。

要从可能重复的问题中提取相关信息:

在路径前面添加星号解决了问题

[HttpGet("{*path}", Name = "GetFile")]

要从可能重复的问题中提取相关信息,请执行以下操作:

在路径前面添加星号解决了问题

[HttpGet("{*path}", Name = "GetFile")]