Отображение Изображения из модели представления. MVC

Моя проблема подобна Этому вопросу, но достаточно отличается, что я чувствую, что это гарантирует отдельный поток.

Таким образом, у меня есть следующее 'представление';

// A load of other calls to Model.Title, Model.Description, Model.DownloadURL 
// which work fine so no issues with actually ViewModel communication.
// Model.ThumbnailPath is a fully qualified path to an image // stored on disk, within another folder in another project. Thumbnail Image

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

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

Я попробовал жесткое кодирование этот путь к файлу к исходному атрибуту и тем не менее, пустое белое поле.

Существует много других свойств в этом Viewpage, которые отображаются отлично, таким образом, коммуникация через прикладные уровни работает.

Какие-либо идеи, почему это не могло бы функционировать как ожидалось?

Спасибо за Ваше время.

1
задан Community 23 May 2017 в 12:18
поделиться

2 ответа

Атрибут src должен быть URL-адресом, а не путем к файлу. Если можете, поместите изображения в папку content / images и укажите там URL-адрес. Если нет, то есть файл должен оставаться там, где он есть, тогда подумайте о наличии контроллера, который может читать изображение и возвращать его как ContentResult с правильным типом mime, и использовать URL-адрес контроллера / действия / идентификатора изображения в качестве src для изображения.

<img src="<%= Url.Content( "~/images/thumbnails/" + Model.ThumbnailName ) %>" ...

или

<img src="<%= Url.Action( "thumbnail", "image", Model.ImageID ) %>" ...
2
ответ дан 2 September 2019 в 23:18
поделиться

Хотя это не имеет полного смысла отвечать на ответ в этом поле, мне нужно написать код.

Я не очень понимаю, что бы вы написали на стороне контроллера в предложенном вами сценарии tvanfosson.

Вот что существует:

Папка Images в: MySolution.Models.Entities.Images.ProjectThumbnails. В этой папке есть несколько bmp, все они названы в соответствии с GUID сущности, к которой они принадлежат.

Теперь у меня есть контроллер в: MySolution.Controllers.ProjectsController со следующим методом:

 public ContentResult ProjectThumbnails(Guid Id)
 {
     ContentResult result = new ContentResult();

     Project project = projectService.GetProject(Id);
                      //This is still a fully qualified disk location path
     result.Content = project.ThumbnailImagePath; 
     return result;            
 }

Затем в представлении:

<img src="<%= Url.Content(~/ProjectThumbnails/" + Model.Id) %>" />

Однако, я не получаю никакой подсказки при вводе "Url.Content", что редко бывает хорошо, а также, когда я запускаю сайт, я получаю следующую ошибку:

"Compiler Error Message: CS1010: Newline in constant" С ошибкой, указывающей на строку.

Не могли бы вы пояснить, что я могу упустить? Учитывая, насколько MVC упрощает большинство других аспектов создания сайтов, просто смешно, насколько сложной является работа с изображениями.

0
ответ дан 2 September 2019 в 23:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: