Контроллер:Возврат изображения от контроллера
public ActionResult Beacon(string value)
{
var dir = Server.MapPath("/Content/Images/Sprites/");
var path = Path.Combine(dir, "logo.png");
return base.File(path, "image/png");
}
Сгенерированный HTML:
<img style="-webkit-user-select: none" src="http://localhost:38315/Beacon/999">
Однако не отображается изображение. В Chrome это небольшая коробка с серыми границами, а в MS Edge есть ящик с «X», который я предполагаю, это изображение «Файл не найден».
Я попытался вернуть разные изображения (чтобы убедиться, что первый из них не поврежден), несколько типов контента, но без везения.
Я уверен, что существуют разные файлы, которые я пробовал.
Я прочитал этот пост: ASP.Net MVC - Img Src Server Path
Я попытался это:
return File("~/images/beacon.png", "image/png");
Я попытался возвращающую строку Base64, но не повезло.
Когда я запускаю этот код говорится, что файл действительно существует:
var dir = Server.MapPath("/images");
var path = Path.Combine(dir, "beacon.png");
var res = System.IO.File.Exists(path);
return base.File(path, "image/png");
Как я могу вернуть простое изображение через контроллер?
* Willy David Jr Предложение *
public ActionResult Beacon(string value) {
var path = Server.MapPath(Url.Content("~/Content/Images/Sprites/")) + "logo.png";
var theFile = new FileInfo(path);
if (theFile.Exists) {
return File(System.IO.File.ReadAllBytes(path), "image/png");
//or return base.File(path, "image/png");
}
return this.HttpNotFound();
}
ли ударил его действия при отладке? Убедитесь, что путь к изображению - это карты для действия. Кроме того, сделайте 'System.IO.File.Exsits (путь)' на пути и убедитесь, что существует производный путь. Скорее всего, вы неправильно создаете путь. – Nkosi
@Nkosi Обновленный ответ. «res» истинно, т. е. кажется, существует. – Jefecito