到.NET Core Web API控制器的多个路由

时间:2017-06-28 13:29:58

标签: routing asp.net-core-webapi

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

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

控制器看起来像

[HttpGet("{path}", Name = "GetFile")]
public IActionResult GetFile(string path)
{
  // read the file & content type
  return File(f, contentType);
}

如果我只使用文件名(文件是控制器),例如。

,一切正常
http://localhost:61261/api/v1/Files/test.png

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

http://localhost:61261/api/v1/Files/subdirectory/test.png

我如何进行路由,在第二个例子中路径变量将是" subirectory / test.png"?

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

1 个答案:

答案 0 :(得分:0)

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

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

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