2016-10-31 3 views
0

Я сделал функцию загрузки изображения в своем приложении MVC. Изображение загружается в каталог в приложении и изменяет размер, переименовывается и форматируется с помощью модуля ImageResizer. Все изображения переименовываются в идентификационные номера.Как выбрать изображение в каталоге по его названию?

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

Вот код, который я попытался использовать с оператором 'where', но этот подход не сработал.

public ActionResult Index(int? vesselId) 
{ 
    var filePath = Server.MapPath("~/Content/images/vessels/"); 
    var fileName = Path.GetFileNameWithoutExtension(filePath); 
    var model = new VesselImagesViewModel 
    { 
      VesselImages = Directory.EnumerateFiles(filePath) 
      .Select(fn => Path.GetFileName(fn)) 
      .Where(fileName.Equals(vesselId)); 
    }; 
    return View(model); 
} 
+1

Можете ли вы лучше объяснить, что вы имеете в виду, выбрав изображение по его названию? – Sid

+1

Вы застряли? Сообщение об ошибке? Что случилось? – CodeNotFound

+0

'public ActionResult Details (имя строки) {return File (Path.Combine (..., name)); } '? – CodeCaster

ответ

0

Благодаря @Quantic для входа в это, сравнивая имя файла с:

Path.GetFileNameWithoutExtension 

Полный код выглядит следующим образом:

Контроллер

public ActionResult Details(int? vesselId) 
    { 
     // 
     // Enumerate through the images directory and 
     //return the results to the view. 
     var filePath = Server.MapPath("~/Content/images/vessels/"); 
     var fileName = Path.GetFileNameWithoutExtension(filePath); 

     var model = new VesselImagesViewModel 
     { 
      VesselImages = Directory.EnumerateFiles(filePath) 
      .Select(fn => "~/Content/images/vessels/" + Path.GetFileName(fn)) 
      .Where(id => Path.GetFileNameWithoutExtension(id) == vesselId.ToString()) 
     }; 

     return View(model); 
    } 
Смежные вопросы