Я пытаюсь создать спокойный сервис, который предоставляет некоторые данные, все было просто отлично, пока я не понял, что мучительно представлять полный URL-адрес изображений с сервера.Может быть, это только я, но я нахожу это очень сложным.
Просто чтобы быть в контексте, я использую Entity Framework для чтения из моей базы данных, вот таблица, с которой я работаю:
![enter image description here](https://i.stack.imgur.com/Qb888.png)
Как видите, есть поле с именем «ImagePath», парни с плохим именем, это должно быть «ImageName», независимо от того, что в этом столбце сохраняется точное имя файлаизображения, представляющего этот объект Champion, все изображения в данный момент находятся в папке проекта wwwroot, например:
![enter image description here](https://i.stack.imgur.com/ek5AW.png)
Вся бизнес-логиканаходится не на контроллере, находится в папке / слое службы обычного класса (возможно, это не имеет значения, но я просто хотел уточнить, что я не работаю внутри какого-либо контроллера):
![enter image description here](https://i.stack.imgur.com/FCFEE.png)
И в этом методе я ожидаю, что волшебство произойдет:
public async Task<IList<Champion>> GetChampions()
{
List<Champion> champions = await _context.Champion
.Include(x => x.PrimaryClass)
.Include(x => x.SecondaryClass)
.Include(x => x.ChampionUserRate)
.ToListAsync();
//BEFORE RETURNING THE CHAMPION TO THE CONTROLLER, I WILL NEED TO CONCATENATE MY CURRENT SERVER URL AND THE PATH TO THE IMAGE PLUS THE IMAGE NAME FILE WHICH IS ALREADY IN THE DATABASE AND ALREADY MATCHES THE IMAGES FOLDER
string serverPathToChampionsFolder = null; //Example: http://localhost:57435/wwwroot/Champions
foreach (var champion in champions)
{
champion.ImagePath = serverPathToChampionsFolder + champion.ImagePath;
}
return champions;
}
Просто чтобы прояснить это, ключевая строка здесь:
string serverPathToChampionsFolder = null; //Example: http://localhost:57435/wwwroot/Champions
Мне нужно как-то получить текущий URL, как в примере, чтобыдобавьте его к каждому чемпиону, чтобы его можно было использовать на стороне клиента внутри тега изображения.
Если это невозможно сделать с помощью подхода, который я пытаюсь реализовать, я приму любое другое предложение,Дело тут в том, чтобы выставить URL изображения, неважно как.