ASP .NET Web Forms - Referenciando imagens


 Neste artigo veremos como podemos referenciar imagens em um projeto ASP .NET Web Forms.

Podemos exibir imagens de diversas formas em aplicações ASP .NET Web Forms, e,  usar o controle image é a mais simples delas.

A classe Image exibe uma imagem em uma página Web e se você consultar a documentação em https://msdn.microsoft.com/pt-br/library/system.web.ui.webcontrols.image(v=vs.110).aspx, vai encontrar dezenas de propriedades e métodos que podemos usar.

A seguir alguns recursos básicos deste controle:

A propriedade ImageUrl é a propriedade onde você vai definir o caminho e nome da imagem a ser exibida e aqui cabe alguns esclarecimentos quanto a forma como podemos definir o valor desta propriedade:

1 - Exibindo uma imagem que esta na pasta Imagens usando o caminho absoluto

<img src="http://www.seuwebsite.com/Imagens/Imagem.jpg" />

2 - Exibindo uma imagem que esta na pasta Imagens na raiz do projeto ( / ) :

<img src="/Imagens/Imagem.jpg" />

3 - Exibindo uma imagem que esta na pasta Imagens no diretório atual ( ./ ) :

<img src="./Imagens/Imagem.jpg" />

4 - Exibindo uma imagem na pasta Imagens no diretório pai ( ../ ) :

<img src="../Imagens/Imagem.jpg" />

4 - Usando o operador raiz para identificar a raiz da aplicação atual  ( ~ ) :

<asp:image runat="server" id="Image"  ImageUrl="~/Imagens/Imagem.jpg" />

Exibindo imagens/páginas em Master Pages e User Control

Vimos que ~/ significa a pasta de raiz física da aplicação web. No entanto, usar esse recurso no seguinte formato não funcionará em uma página da Web com uma Master Page ou um User Control:

ImageUrl="~/Imagens/Imagem.jpg"


Para contornar esse problema podemos usar page.ResolveUrl() que traduz uma URL relativa ao aplicativo para uma URL absoluto.

 

<img src = '<%=Page.ResolveUrl ('~/Imagens/Imagem.jpg')%>' />

 

Dessa forma Page.ResolveUrl converte o ~ no caminho correto para o diretório do aplicativo atual.

 

Suponha agora que você tenha feito um User Control ou Controle de Usuário que você vai usar em muitas páginas diferentes. Parte do controle de usuário é um link para a página inicial.

 

Se você usar o Controle do Usuário em uma página com mais de um nível de profundidade, como por exemplo:  http: //website/folder1/Pagina1.aspx

 

e você referenciar assim :

 

<a href="./Home.aspx" runat="server"> Home </a>

 

irá ser resolvido como http: //website/folder1/Home.aspx

 

Agora se você usar Page.ResolveUrl :

 

<a href="<%= Page.ResolveUrl("~/Home.aspx")%> "runat =" server ">

 

Vai ser resolvido como http: //website/home.aspx, o que é muito mais provável que seja o que você deseja, pois o link estará correto em qualquer página.

 

Assim o comando Page.ResolveUrl lado do servidor resolveu a URL da raiz ao usar '~'.
 


E estamos conversados...
 

"Naquele tempo, respondendo Jesus, disse: Graças te dou, ó Pai, Senhor do céu e da terra, que ocultaste estas coisas aos sábios e entendidos, e as revelaste aos pequeninos."
Mateus 11:25

 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

 

             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti