5

In quasi tutti gli esempi ASP.NET MVC ho incontrato, ho sempre vedere Url.Content in uso per fare riferimento a CSS, JavaScript e immagini. Non una volta qualcuno ha spiegato PERCHÉ usarlo.Perché utilizzare Url.Content per le risorse di riferimento?

Qualcuno si preoccupa di spiegare?

Cosa c'è di male a fare:

<img src="/Content/Img/MyImage.png" alt="My Image" /> 
<script src="/Scripts/jquery.js" type="text/javascript"></script> 
<link href="/Content/Css/Default.css" rel="stylesheet" type="text/css" media="all" /> 
+0

Ecco una buona spiegazione: http: //www.west-wind .com/weblog/messaggi/132081.aspx – DaveN

risposta

2

Quello che hai funziona allo stesso modo Url.Content(). Url.Content() è proprio come l'aggiunta di un ~ da inizio del vostro percorsi:

<script src="~/Scripts/jquery.js" type="text/javascript"></script> 

assicura solo il percorso è sempre corretto con il routing. È inoltre possibile effettuare un metodo di supporto HTML per rendere questo più facile:

public static string RenderScript(this HtmlHelper htmlHelper, string file) { 
      var f = file.EndsWith(".js") ? file : string.Concat(file, ".js"); 
      return string.Format("<script src=\"/public/scripts/{0}\" type=\"text/javascript\"></script>", f); 
     } 

Poi si può solo mettere questo nel vostro masterpage:

<%=Html.RenderScript("jquery")%>