Я думал о том, чтобы сделать это, но у меня только один тип изображения, обслуживаемый таким образом. Я хотел исключить логику преобразования из ImageResult, чтобы результат был как можно более повторным. а под номером 2 я просто скопировал код и изменил его так, чтобы он принимал MemoryStream так же, как в настоящее время он принимает другие параметры.

я есть изображения в базе данных, и я хочу вернуть изображение для просмотра из действия. Вот мое действие.

public FileContentResult Index(ItemImageRequest request)
{
    var result = queueService.GetItemImage(request);

    if (result.TotalResults == 0)
        return File(new byte[0], "image/jpeg");

    var image = result.FirstResult;

    return File(image.Image, "image/tif");
}

Я также попробовал этот код

public FileStreamResult Index(ItemImageRequest request)
{
    //retrieval omitted

    var image = result.FirstResult;

    System.IO.Stream stream = new System.IO.MemoryStream(image.Image);

    return new FileStreamResult(stream, "image/tif");
}

Когда я перехожу к своему действию в браузере, он запрашивает загрузку. Я не хочу, чтобы он загружался, я хочу, чтобы он отображался в браузере. Как мне это сделать?