2012-06-09 32 views
1

我有一個奇怪的問題。 解析腳本元素的url時,src元素必須在「'中。對於鏈接元素,href必須在「」中,或者由於某種原因代碼塊被渲染爲html。下面的代碼片段更清楚地說明了這個問題。爲什麼會這樣?ASP.Net Control.ResolveUrl怪癖

<script src='<%:Page.ResolveUrl("~/JavaScript/jQuery/jquery-1.7.2.js") %>' type="text/javascript"/> 

<link href="<%:Page.ResolveUrl("~/CSS/Foundation/foundation.css") %>" rel="stylesheet" type="text/css" /> 

編輯 只注意到封閉在「當腳本元素的src標籤工作正常」或「」,但鏈接元素href標記似乎只封閉在何時工作「」。

回答

1

它不起作用,因爲您在腳本中使用的是。相反,你應該這樣做(和它的工作使用單引號和雙引號:

<link href="<%= ResolveUrl("~/Styles/site.css")%>" rel="stylesheet" type="text/css" /> 

注意上面我用了一個=,而不是

或者,在一些情況下,你甚至可以使用如果,比如說,在母版的代碼隱藏叫Page.Header.DataBind();和你在你的母版的<head> outputing您參考:

<link href="<%# ResolveUrl("~/Styles/site.css")%>" rel="stylesheet" type="text/css" /> 
+0

我已經試過'<%='選項,它也不起作用。 ':'vs'='似乎與我無關。 – Lee

+0

我只是試了一下,它確實工作:)。而且要啓動,我嘗試使用單引號使用冒號,並且它沒有按預期工作。所以,將你的:改爲a =(確保你的語法正確),你是金。 – Jeremy

+0

我沒有打電話給page.header.databind(),但是#能夠處理單引號。我不知道爲什麼。 – Lee