C# 如何从wwwroot返回图像?

C# 如何从wwwroot返回图像?,c#,asp.net,asp.net-core,C#,Asp.net,Asp.net Core,我试图返回存储在wwroot/images文件夹中的图像,结构如下: 在视图中我有以下标签: <img src="@Url.Action("GetAvatar", "User", new { username = User.Identity.Name })" /> 方法的第一部分从数据库中检索图像,但最后一部分尝试从wwwroot文件夹中获取图像,但不起作用。事实上,当我加载视图时会得到一个断开的缩略图,这意味着找不到 我还被注入了IHostingEnvironment以访问ww

我试图返回存储在
wwroot/images
文件夹中的图像,结构如下:

视图中
我有以下标签:

<img src="@Url.Action("GetAvatar", "User", new { username = User.Identity.Name })" />
方法的第一部分从数据库中检索图像,但最后一部分尝试从
wwwroot
文件夹中获取图像,但不起作用。事实上,当我加载
视图时
会得到一个断开的缩略图,这意味着找不到

我还被注入了
IHostingEnvironment
以访问
wwwroot
文件夹


有什么想法吗?

您使用的
文件
方法具有以下特征:

public VirtualFileResult File (string virtualPath, string contentType);
顾名思义,这里的第一个参数表示要提供服务的文件的虚拟路径;不是物理路径。默认情况下,这意味着您需要提供一个基本上仅与
wwwroot
文件夹相关的路径。在您的示例中,路径将是
images/avatar\u default.png
。这样,就不需要
路径。在您的示例中组合
IHostingEnvironment
。以下是最新版本:

[HttpGet]
public FileResult GetAvatar(string username)
{
   User user = _repo.GetUser(username);

   if(user.UserDetail != null)
      return File(user.UserDetail?.UserPhoto, "image/png");

   return File("images/avatar_default.png", "image/png");
}
[HttpGet]
public FileResult GetAvatar(string username)
{
   User user = _repo.GetUser(username);

   if(user.UserDetail != null)
      return File(user.UserDetail?.UserPhoto, "image/png");

   return File("images/avatar_default.png", "image/png");
}