Malikdanish Ответов: 1

Изображения, CSS, JS путь к папке изменен в частичных представлениях


У меня есть простое веб-приложение mvc , в котором у меня есть меню типа
home, services, contactus, когда я нажимаю меню службы, вызывается новый контроллер службы и открывается представление индекса службы, и в этом представлении есть сведения о службе, а также кнопка «Читать дальше», когда я нажимаю кнопку «Подробнее», я хочу показать дополнительные сведения, например Описание этой службы, все эти вещи работают правильно. Проблема в том, что когда я нажимаю кнопку ссылки Readmore в представлении службы, он теряет путь к моей папке JS и Css, поэтому мой _Layout.cshtml имеет ползунок, и он не показывает изображения этого слайдера, когда я нажал кнопку «Подробнее», он правильно показывает другие детали, но путь моих изображений и Css, JS нарушается, я вдохновляю на проблему и проверяю, что

это правильный путь, но когда я навожу курсор на тег img, он показывает путь таким образом
http://localhost:60553/Service/Images/img/rsz_malibu-2.png не удалось загрузить ресурс

Я имею в виду, что он ищет мои CSS JS и изображения в служебной папке, а не в корневой папке, как это исправить

Что я уже пробовал:

Я проверил метод моего слайдера он имеет правильный путь в коде но когда я проверяю элемент в браузере он показывает следующий путь
http://localhost:60553/Service/Images/img/rsz_malibu-2.png
Это поиск изображения в служебной папке, а не в корневой, то Images/img/rsz_malibu-2. png

Suvendu Shekhar Giri

поделитесь соответствующим кодом

Malikdanish

В основном мой разрешающую и CSS отлично работает на родной контроллер также на обслуживание контроллера, но когда я нажимаю на любую из предоставляемых услуг, то образы ломаются, я обнаружил, почему это так, когда я наведите указатель мыши на тэг img с помощью Просмотр кода элемента в браузере Chrome, он показывает, что вместо того, чтобы найти изображение с корнем/образы/от Google.ПНГ является вывод изображения с корнем/обслуживания/изображения/Гугл.ПНГ
ниже находится кнопка Читать, а также метода контроллера
@формат HTML.ActionLink ("ReadMore", "Details", "Service", new { id = item.ID }, null)
public ActionResult Details(int id)
{
slider sd = новый слайдер();
//СД.Метода GetData();

// viewModelVm vm = новый viewModelVm();


Обслуживание СР = новая услуга();
СР.Getdatabyid(ИД);
viewModelVm vm = новый viewModelVm();
ВМ.слайдер = СД.Метода GetData();
ВМ.обслуживание = СР.Getdatabyid(ИД);
Обслуживание СС = СР.Getdatabyid(ИД);
смотреть возвращение(ВМ);
}

Malikdanish

публичный список (слайдер) GetData()
{
string[] filePaths = каталог.Заражен(Системы.Веб.Свойство HttpContext.Тока.Сервер.MapPath ("/Images / img/"));
Список (слайдер) файлов = новый список (слайдер)();
модель var = новая система.Коллекции.Универсальный.Список(слайдер)();
по каждому элементу (строка FilePath в пути к каталогам)
{
строка файла = путь.GetFileName(путь_к_файлу);
модель.Добавить (новый слайдер
{
title = имя файла.Split ('.') [0].Метод toString(),
src = ".. / Images/img/ " + имя файла
});
}
возвращаемая модель;
}
угловые тормозные колодки теперь разрешены, поэтому я размещаю () тормозные колодки

1 Ответов

Рейтинг:
2

David_Wimbley

Я думаю, что ваша проблема заключается в вашем методе GetData, особенно здесь:

src = "../Images/img/" + fileName



Я думаю, вам нужно изменить это на что-то вроде

src = HttpContext.Current.Server.MapPath("~/Images/img/" + fileName);


То, как вы сейчас это делаете, вызов относится к вашему запросу. Использование Сервера.MapPath сопоставляет Ваш URL-адрес с изображением относительно сервера.


Malikdanish

Дорогой спасибо за ваш ответ, сделав это, мои изображения из дома{index view} также исчезают, когда я проверил путь изображений, это так
C:\Users\dhabib\Documents\Visual студия 2010\Projects\MVC\BusinessApplicationTemplate\BusinessApplicationTemplate\Images\img\009-Living_Room-2169443-large-2.png
Я решил эту проблему с помощью
src = ".. / .. / Images/img/ " + имя файла
Еще раз спасибо за Вашу поддержку

David_Wimbley

Ну ... / ... / изображения не решат вашу проблему, вы будете в конечном итоге гнездиться все глубже и глубже.

Попробуй

Url.Content("~/Images/img/" + fileName);
вместо. Я забыл точный адрес, но думаю, что Url. Content должен работать.

Malikdanish

Нет Url.Содержимое доступно мне главное сервер.MapPath () - это альтернатива, но она также не сработала для меня