2009-03-04 15 views
7

UPDATE questo problema non esiste nei bit di rilascio di ASP.NET MVCASP.NET MVC RC torna strada sbagliata per Url.Content

Ho un app ASP.NET MVC RC che funziona benissimo sotto la debugger in esecuzione da http://localhost:9002/ Ma quando lo pubblico su http://localhost/Zot/ le chiamate a Url.Content stanno restituendo valori errati.

Ho tag script come

<script src="<%= Url.Content("~/Scripts/util.js") %>" ... 

Nel sito pubblicato questo produce:

<script src="Zot/Scripts/util.js" ... 

Invece di

<script src="/Zot/Scripts/util.js" ... 

o

<script src="Scripts/util.js" ... 

devo tag fogli di stile come:

<link href="~/Content/Site.css" runat="server" ... 

che producono la cosa giusta:

<link href="Content/Site.css" ... 

qualche suggerimento su perché Url.Content sta venendo a mancare. Non riesco a mettere chiaramente un runat="server" sui tag <script>.

risposta

6

Io tendo ad usare di Script Registration helper Rob Conery:

public static string RegisterJS(this System.Web.Mvc.HtmlHelper helper, string scriptLib) { 
    //get the directory where the scripts are 
    string scriptRoot = VirtualPathUtility.ToAbsolute("~/Scripts"); 
    string scriptFormat="<script src=\"{0}/{1}\" type=\"text/javascript\"></script>\r\n"; 
    return string.Format(scriptFormat,scriptRoot,scriptLib); 
} 

Usage:

<%= Html.RegisterJS("myscriptFile.js") %> 

Come si può vedere nell'esempio, questo utilizza VirtualPathUtility per risolvere l'URL della directory Scripts. Questo dovrebbe anche aiutare a bypassare il problema della zuppa tag.

+0

Grazie! Ha funzionato alla grande –

+0

Rob, si prega di notare anche la risposta di Levi, poiché apparentemente si trattava di un bug che era stato risolto in RC2. Cheers. –

Problemi correlati