当前上下文中不存在名称 'Server'

The name 'Server' does not exist in the current context

我有一个 razor 视图页面,我需要在其中检查文件是否存在,然后再尝试将其显示给用户,否则显示默认图像占位符。 下面是我写的代码

@{
 if (!string.IsNullOrEmpty(@parent.Photo) && File.Exists(Server.MapPath($"~/images/parents/thumbs/@parent.Photo")))
    {
      <img src="~/images/parents/thumbs/@parent.Photo" class="rounded- 
       circle img-fluid" />
     }
     else
     {
      @: No photo
     }
 }

但我收到如下错误

The name 'Server' does not exist in the current context

所以我无法构建应用程序。 我尝试在视图页面上添加以下 using 语句

using System;
using System.IO;

但没区别

我的应用程序是 运行 ASP.NET-Core 3.1 windows 10

好吧 Server.MapPath 不会在 ASP.NET.Core 中退出,您应该使用 IWebHostEnvironment 界面。将 IWebHostEnvironment 注入您的视图并使用它。

@inject IWebHostEnvironment env

@{
 var path = Path.Combine(env.WebRootPath, $"images/parents/thumbs/@parent.Photo"));
 if (!string.IsNullOrEmpty(@parent.Photo) && File.Exists(path))
    {
      <img src="~/images/parents/thumbs/@parent.Photo" class="rounded- 
       circle img-fluid" />
     }
     else
     {
      @: No photo
     }
 }

有关更多信息,请阅读本文 Server.MapPath Equivalent in ASP.NET Core.