Credo che il 99% dei siti sviluppati con ASP .NET, a partire dalla versione 2.0, facciano uso delle pagine Master. Tra le altre cose, esse possono essere utilizzate per aggiungere il riferimento a file Javascript (*.js) in modo da renderli automaticamente disponibili a tutte le pagine. Il problema di questo approccio è che il percorso del file Javascript (quello indicato nell'attributo src del tag script) è relativo alla posizione della Master page: ad esempio, se la master page è nella root del sito e il file javascript si trova nella directory Js, il tag script avrà la seguente forma:
<script src="js/functions.js" type="text/javascript"
language="javascript"></script>
Tuttavia, se il sito contiene file ASPX in altre directory, questo percorso non è più valido, poiché la loro posizione relativa rispetto al file javascript è diverso (ad esempio, dovrebbe essere del tipo "../js/functions"). Purtroppo con il tag script non si può usare il carattere speciale ~ per indicare la root del sito. La soluzione al problema consiste nell'usare il metodo ResolveUrl per determinare dinamicamente il percorso corretto del file:
<script src="<%= ResolveUrl("~/js/functions.js")%>"
type="text/javascript" language="javascript"></script>
Così facendo, il runtime di ASP .NET di volta in volta inserirà nel tag script il percorso del file corretto, in base alla posizione della pagina ASPX.
Lo stesso "trucco" permette di indicare un'immagine di sfondo nel tag body della Master page, in modo che sia visualizzata correttamente da tutte le altre pagine del sito, indipendentemente dalla loro posizione.