2009-03-04 16 views
7

GÜNCELLEME için yanlış bir yol verirASP.NET MVC RC bu konunun ASP.NET MVC serbest bırakılması bit mevcut değildir Url.Content

ben altında ince çalışan bir ASP.NET MVC RC uygulaması var http://localhost:9002/'dan çalışan hata ayıklayıcı Ancak, http://localhost/Zot/ numaralı telefona yayınladığımda, Url.Content'e yapılan çağrılar yanlış değerler döndürüyor. Bunun yerine

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

veya

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

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

:

bu üretir yayınlanan sitede

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

gibi komut dosyası etiketleri var Doğru olanı üretmek

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

:

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

neden Url.Content başarısız üzerinde herhangi bir öneriniz

Ben stil gibi etiketler var. <script> etiketlerine açıkça bir runat="server" koyamıyorum.

cevap

6

Ben kullanma eğiliminde Rob Conery en Script Registration helper:

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); 
} 

Kullanımı:

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

örneğin görebileceğiniz gibi

, bu VirtualPathUtility Scripts dizinin url çözmek için kullanır. Bu da etiket çorbası sorununu atlatmak için yardımcı olmalıdır.

+0

Teşekkürler! Bu harika çalıştı. –

+0

Rob, aynı zamanda, Levi'nin cevabını da göz önünde bulundurun, çünkü görünüşe göre bu, RC2'de sabitlenmiş bir hataydı. Şerefe. –