ASP.NET Core MVC 使用控制器中的路由重定向特定文件夹中的所有子目录和文件

问题描述 投票:0回答:1

我正在开发一个 ASP.NET Core 8 MVC 项目,我需要为所有文件和子文件夹设置重定向路由到特定文件夹。

这对于像

/images/foo.png
这样的网址非常有用,但不适用于
/images/sub1/foo.png
/images/sub1/sub2/foo.png

[Route("/images/{restOfPath}")]

我需要一条路线来捕获

images
文件夹中的所有内容。

谢谢大家

asp.net-core-mvc asp.net-mvc-routing
1个回答
0
投票

您可以使用“catch-all”参数

**
来实现此目的。这是一个示例。

private readonly IWebHostEnvironment _env;

public SampleController(IWebHostEnvironment env)
{
    _env = env;
}

[HttpGet("/Images/{**restOfPath}")]
public IActionResult Index(string restOfPath)
{
    var imagesRoot = Path.Combine(_env.ContentRootPath, "images", restOfPath);
    var contentType = "image/png";

    return PhysicalFile(imagesRoot, contentType);
}

© www.soinside.com 2019 - 2024. All rights reserved.