Quando e perché usare Page.ResolveUrl

6

Quindi, ho avuto una discussione con un collega sul perché e dove dovremmo usare Page.ResolveUrl("~/PageUrl.aspx") invece di ./PageUrl.aspx .

Ad esempio, ci sono delle differenze tra:  
<a href='<%= Page.ResolveUrl("~/Home.aspx")%>' runat="server"> Home </a>
e
<a href="./Home.aspx" runat="server"> Home </a> ?

Qui è quello che ho trovato su msdn ma il l'unico vantaggio che vedo è che Page.ResolveUrl è valido per la risoluzione degli URL per i contenuti (immagini e cose del genere)

Qui puoi trovare un buon esempio sul perché utilizzare Page.ResolveUrl ma Babu Naresh Narra non dice nulla circa l'utilizzo di ./ .

Esistono altri vantaggi che Page.ResolveUrl fornisce rispetto all'approccio ./ di base?

    
posta Zippy 17.03.2015 - 14:48
fonte

1 risposta

7

Supponiamo di aver creato un controllo utente che avresti usato su molte pagine diverse. Parte del controllo utente è un collegamento alla pagina iniziale.

Se utilizzi il controllo utente su una pagina che ha più di un livello di profondità: i.e link

quindi questo:

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

si risolverà in link

Dove questo:

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

Si risolverà in link che è molto più probabile che sia quello che volevi in quanto il link sarà corretto su qualsiasi pagina. Il lato server Page.Resolve ha risolto l'url dalla radice quando si utilizza '~'. Potresti usare "/Home.aspx" nel primo esempio, ma questo non funziona come previsto quando usi Virtual Directory.

    
risposta data 17.03.2015 - 15:42
fonte

Leggi altre domande sui tag