Управление изображениями не работает - PullRequest
0 голосов
/ 08 февраля 2012

У меня есть следующий код ASP:

<asp:DataList ID="dlGallery" runat="server"  
    <ItemTemplate>
        <div style="float: left; padding-right: 10px; text-align: center">
            <img src="<%= ApplicationPath%><%# Eval("ImageUrl") %>"width="80"/>               
    </ItemTemplate>
</asp:DataList> 

Я получаю эту ошибку: Сообщение об ошибке компилятора: CS0103: имя 'ApplicationPath' не существует в текущем контексте

Что это значит? В чем может быть проблема с ApplicationPath?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

Один из первых трюков .NET, который я научился, просто добавлять <% = Request.ApplicationPath%> к началу любых путей на ваших страницах, например:

/ Images / Foo.gif '... />

Проблема заключается в том, что при запросе файла он возвращается «относительный корень» без завершающей косой черты. Это означает, что когда страница запрашивается из корневой папки веб-сайта, Request.ApplicationPath возвращает «/». В приведенном выше примере будет записана следующая строка:

Это не будет восприниматься при разработке с использованием localhost, поскольку приложение будет находиться на один уровень ниже корневого каталога веб-сайта, что означает, что имя виртуального каталога будет возвращено после косой черты '/':

Однако, если страница запрашивается со страницы в подпапке, путь возвращается как "/ FldrName", и приведенный выше пример будет корректно разрешен как:

'Из корня В виртуальном каталоге

0 голосов
/ 08 февраля 2012

Попробуйте импортировать в пространство имен файлов aspx, где существует ApllicationPath.

<%@ Import Namespace="YourNamespace" %>

или указать переменную с полным пространством имен src="<%= YourNamespace.ApplicationPath%>

...