Имя «Сервер» не существует в текущем контексте. - PullRequest
1 голос
/ 28 марта 2020

У меня есть страница просмотра бритвы, где мне нужно проверить, существует ли файл, прежде чем пытаться отобразить его пользователю, в противном случае отобразить заполнитель изображения по умолчанию. Ниже приведен код, который я написал

@{
 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
     }
 }

, но я получаю сообщение об ошибке: 1004 *

Имя «Сервер» не существует в текущем контексте

Так что я не могу собрать приложение. Я попытался добавить следующее с помощью операторов на странице просмотра

using System;
using System.IO;

, но это не имело никакого значения

Мое приложение работает на ASP. NET -Core 3.1 на windows 10

1 Ответ

5 голосов
/ 28 марта 2020

Ну 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 Эквивалент в ASP. NET Core .

...