У меня проблема с тем, как ASP.Net генерирует тег img. У меня есть такой серверный элемент управления:
<asp:Image runat = "server" ID = "someWarning" ImageUrl = "~/images/warning.gif" AlternateText = "Warning" />
Я ожидаю, что это сгенерирует это:
<img id = "ctl00_ContentPlaceHolder1_ctl00_someWarning" src = "../images/warning.gif" />
но вместо этого он генерирует это:
<img alt = "" src = "/Image.ashx;img=%2fimages%2fwarning.gif"</img>
Это дает мне ошибки, когда я выполняю следующие js:
document.getElementById('ctl00_ContentPlaceHolder1_someWarning')
Любая идея, почему он не генерирует ожидаемый html?





Похоже, он пытается использовать специальный обработчик (ashx) для доставки изображения. Есть ли у вас какие-либо дополнительные модули, которые могут переопределять поведение asp: Image по умолчанию?
Ваш JavaScript не будет работать, потому что тегу изображения не был присвоен идентификатор в сгенерированном HTML.
Вы можете получить фактический идентификатор, сгенерированный с помощью ClientID. Я использую это, чтобы получить идентификатор элемента управления для использования в JavaScript, используя синтаксис, подобный следующему:
document.getElementById('<%=ddlCountry.ClientID%>').style.display = "block";
Однако вы также можете использовать его в своем коде программной части, чтобы получить то же самое.