Изображение не будет отображаться на моей странице aspx после добавления главной страницы.. если не изменился идентификатор.. что еще может быть причиной?

Использовал следующий код, чтобы избавиться от сгенерированного системой идентификатора: -

Banner.ascx.cs

protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
    StringWriter Html = new StringWriter();
    HtmlTextWriter Render = new HtmlTextWriter(Html);
    base.Render(Render);
    writer.Write(Html.ToString().Replace("id=\"ctl00_ContentPlaceHolder2_ctl00_Banner_", "id=\""));
}

используя приведенный выше код, он отображает идентификатор как исходный (т. е. "div1".. раньше он отображал идентификатор div как "ctl00_ContentPlaceHolder2_ctl00_Banner_div1"... так что я изменил идентификатор, поскольку резонатор не отображает мое изображение), но все же изображение не будет отображаться...

testClass.aspx: -

<div id="div1" class="id0" style="background-image: url(<%=GetImage()%>);">
    <ul>
        <li>
        <li>
        .
        .
        .
    </ul>
</div>

testClass.aspx.cs

public partial class testClass : System.Web.UI.Page    
{
    Control userControlBanner;
    UserControl Banner;
    Content c1;

    protected void Page_PreInit(object sender, EventArgs e)
    {            
        this.MasterPageFile = (String)("~/master1.master");
        c1 = new Content();
        string uc = "~/usercontrols/Banner.ascx";
        userControlBanner = Page.LoadControl(uc);
        userControlBanner.ID = "Banner";
        c1.Controls.Add(userControlBanner);
        this.Master.FindControl("ContentPlaceHolder2").Controls.Add(c1);
    }
}

Banner.ascx

Теперь, когда приведенный выше код отображается в исходном коде страницы, я вижу полный путь к изображению как "http://localhost/myweb/images/myImage.jpg" и вижу изображение, когда я набираю этот адрес "http: // localhost /myweb/images/myImage.jpg "в браузере, почему изображение не появляется на моей странице aspx!? ((

Я так старался избавиться от идентификатора, сгенерированного системой, но изображение не показывалось!:((

Edit1:

Хорошо, я даже указал путь (где изображение на самом деле) к изображению, как это:- "F:\WS\myweb\images\myimage.jpg" ... это должно хотя бы показать сейчас!.. не так ли? Изображение скрывается за каким-то другим элементом страницы или как?

Боже, я застрял в этом, как и все ((

Edit2:

хорошо, я попробовал то, что сказал mxmissile.. добавил один тег div на мою тестовую страницу и назначил для него пользовательский элемент управления вместо "ContentPlaceHolder" (хотя я хочу, чтобы там был только баннер) ... теперь изображение все еще не появляется.. все остальное в порядке... элементы списка и все... только то, что изображение не появляется... Я удалил все из пользовательского элемента управления, но спрайтное изображение может думать, что изображение скрывается или что-то скрывается за этим списком ссылок.. до сих пор нет изображения:(кто-то помогите пожалуйста. Спасибо!

Edit3:

Когда я открыл Firebug.. в разделе "Стиль"... он показывает путь к изображению, вычеркнутый.. почему это???

Edit4:

обнаруженный стиль был переопределен.. Я дал фоновое изображение в моем css и то же самое в теге div с ID=id0.. удалил свойство background-image из тега div.. теперь путь к изображению только в css... так что больше не ударил из текста.. пока изображение не появляется.... путь к изображению правильный... в разделе "Стиль" в Firebug.. Я могу увидеть изображение, когда наведу

.id0, .mySprite:hover div {
background-image:url("http://localhost/myWeb/images/myImage.jpg");

Почему я не вижу изображение баннера на своей странице?

Edit5:

изменил это:

.id0, .mySprite:hover div
{
    background-image: url(../images/myImage.jpg);
    background-repeat: no-repeat;
}

к этому:

.id0, .mySprite:hover div
{
    background-image: url(../images/myImage.jpg);
    background-repeat: no-repeat;
    width: 728px;
    height: 243px;
}

еще ничего!:(((Если это даже не проблема размера, что это???

Edit6:

Изображение извлекается из метода... url(<%=GetImage()%>); этот метод возвращает путь в порядке.. просто не вижу изображения на моей странице.. что не так??

[РЕДАКТИРОВАТЬ 7]

Это только после добавления главной страницы, что этот спрайт облажался.. отлично работал раньше..

6 ответов

В одном из ваших комментариев вы заявили:

"В css тоже путь показывается вот так при просмотре исходного кода страницы"background-image: url(localhost/myweb/images/myImage.jpg);"

В этом случае браузер будет искать относительную папку с именем localhost /... вплоть до файла myImage.jpg, вам необходимо предоставить действительный URL (абсолютный или относительный)

Или:

  • background-image: url(http://localhost/myweb/images/myImage.jpg);

или же

Проверка получения базового URL-адреса корня веб-сайта (абсолютного / относительного URL) и ASP.NET - темы и относительные ссылки

testClass.aspx Источник страницы:-

<div id="div1" class="id0" background-image: url(<%=GetImage()%>);>

Это не HTML, даже не допустимый XML. использование

<div id="div1" class="id0" style="background-image: url(<%=GetImage()%>);">

вместо. (В конечном итоге, вы должны поместить объявление background-image в таблицу стилей, но это может быть кэшировано, что является еще одной головной болью при тестировании.)

Кроме того, избавьтесь от отрицательных z-индексов во время тестирования.

Разметка:

<div id="div1" class="c1" runat="server" ></div>

отделенный код:

div1.Controls.Add(userControlBanner);

Не устанавливайте путь изображения в местоположение F:ws... используйте свой оригинальный путь "/images/myImage.jpg" или даже лучше "~/images/myImage.jpg"

Вы добавили изображение в решение Visual Studio?

Я замечаю, что иногда изображения не отображаются, когда они не добавляются в решение, как это ни странно.

Вы пробовали просматривать в другом браузере?

Ваша главная страница имеет CSS с <li> Задано ли для свойства background значение тега? Может быть, это вызывает скрытие фона вашего div.

Другие вопросы по тегам