Не отображаются изображения товаров в интернет магазине

ASP.NET
  1. 8 месяцев(а)
    Добавлено 8 месяцев(а) 24Yarik

    Здравствуйте! При разработке интернет магазина столкнулся с проблемой.
    При добавлении картинки в админ панели, при редактировании товара, она успешно сохраняется, что можно проверить в таблице данных,
    -image-
    но ни на сайте,
    -image-
    ни на админ панели она не отображается
    -image-
    Когда пытаюсь открыть ее со страницы, попадаю на страницу с ошибкой 404
    -image-
    Помогите, пожалуйста, это исправить
    Ответа на форуме так и не нашёл

  2. Alexandr_Erohin

    May 12 Администратор

    /Sweet/GetImage рабочий маршрут? При отладке метод GetImage() отрабатывает или даже не запускается?

  3. Добавлено 8 месяцев(а) 24Yarik

    Sweets - это таблица данных, к которой были добавлены поля ImageData и ImageMimeType, в которых должны записываться изображения
    При отладке никаких ошибок, мешающих запуску проекта нет

    P.S.
    Извините, если не смог дать ответы в том объёме в котором нужно
    Это мой первый проект, только начинаю все это осваивать
    Вот ссылка на проект, наверное, это поможет больше

  4. Alexandr_Erohin

    May 12 Администратор

    Я про URL спрашиваю. SweetController реализован? Метод GetImage() есть в нем? Если точку останова поставить внутри GetImage(), при отладке программа доходит до нее?

  5. Добавлено 8 месяцев(а) 24Yarik

    Перешел на http://localhost:50306/Sweet/GetImage
    -image-

    SweetsController реализован, вот код:

    using Domain.Abstract;
    using Domain.Entities;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using WebUI.Models;
    
    namespace WebUI.Controllers
    {
        public class SweetsController : Controller
        {
            private ISweetRepository repository;
            public int pageSize = 4;
    
            public SweetsController(ISweetRepository repo)
            {
                repository = repo;
            }
    
            public ViewResult List( string type, int page = 1)
            {
                SweetsListViewModel model = new SweetsListViewModel
                {
                    Sweets = repository.Sweets
                    .Where(s => type == null || s.Type == type)
                    .OrderBy(sweet => sweet.SweetId)
                    .Skip((page - 1)*pageSize)
                    .Take(pageSize),
                    PagingInfo = new PagingInfo
                    {
                        CurrentPage = page,
                        ItemsPerPage = pageSize,
                        TotalItems = type == null ?
                        repository.Sweets.Count() : 
                        repository.Sweets.Where(sweet => sweet.Type == type).Count()
                    },
                    CurrentType = type
                };
    
                return View(model);
            }
    
            public FileContentResult GetImage(int sweetId)
            {
                Sweet sweet = repository.Sweets
                    .FirstOrDefault(s => s.SweetId == sweetId);
    
                if (sweet != null)
                {
                    return File(sweet.ImageData, sweet.ImageMimeType);
                }
                else
                {
                    return null;
                }
            }
        }
    }

    Поставил точку останова в методе GetImage и запустил отладку
    -image-

  6. Добавлено 8 месяцев(а) 24Yarik

    Проблема была в моей не внимательности
    В файлах _SweetSummary.cshtml и Edit.cshtml исправил код с

    @if (Model.ImageData != null) 
    { 
    <div class="pull-left" style="margin-right: 10px"> 
    <img class="img-thumbnail" width="150" height="150" 
    src="@Url.Action("GetImage", "Sweet", 
    new { Model.SweetId})" /> 
    </div> 
    }

    на

    @if (Model.ImageData != null) 
    { 
    <div class="pull-left" style="margin-right: 10px"> 
    <img class="img-thumbnail" width="150" height="150" 
    src="@Url.Action("GetImage", "Sweets", 
    new { Model.SweetId})" /> 
    </div> 
    }

    После этого все заработало и изображения начали отображаться нормально, как на странице с товарами, так и при их редактировании
    Возможно кому то, кто столкнется с такой же проблемой, это поможет

или зарегистрируйтесь чтобы ответить