Не удается преобразовать строку в Microsft.AspNetCore.Http.IFormFile - PullRequest
0 голосов
/ 01 февраля 2020

Здесь я пытаюсь сопоставить модель SliderImage с моделью просмотра SliderImageVM и вернуть модель просмотра.

В SliderImage модели есть

public string Image { get; set; } 

и в SliderImageVM viewmodel У меня есть

public IFormFile Photo { get; set; }

Теперь при преобразовании модели в viewmodel у меня появляется ошибка

Невозможно преобразовать строку в Microsft.AspNetCore.Http.IFormFile

Ниже приведен мой код

public SliderImageVM GetSliderBySliderImageVMById(int sliderImageId)
{
    var getSliderImage = uow.Repository<SliderImage>().FindBy(x => x.SliderImageId == sliderImageId).FirstOrDefault();
    SliderImageVM newSliderImgeVM = new SliderImageVM
    {
        SliderImageId = getSliderImage.SliderImageId,

        Photo = getSliderImage.Image, //<------Error in this line
    };
    return newSliderImgeVM;
}

1 Ответ

0 голосов
/ 07 февраля 2020

Невозможно преобразовать строку в Microsft.AspNetCore.Http.IFormFile

Если вы хотите присвоить действительное значение Photo свойству вашей модели представления SliderImageVM на основе извлеченных путь / имя файла через getSliderImage.Image, вы можете обратиться к следующему фрагменту кода.

var getSliderImage = uow.Repository<SliderImage>().FindBy(x => x.SliderImageId == sliderImageId).FirstOrDefault();

// get the file path based on getSliderImage.Image

using (var stream = System.IO.File.OpenRead($"{filepath}"))
{
    SliderImageVM newSliderImgeVM = new SliderImageVM
    {
        SliderImageId = getSliderImage.SliderImageId,

        Photo = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(stream.Name))
    };

    // ...
    // code logic here
    // ...
}
...