2012-04-23 115 views
0

我使用HtmlGenericControl將腳本引用添加到頁面標題。問題是它編碼了src參數。因此「& mkt = fr-FR」結果爲「& amp; mkt = fr-FR」並且沒有得到正確的腳本。如何防止編碼HtmlGenericControl?

var scriptTag = new HtmlGenericControl("script"); 
    scriptTag.Attributes.Add("type", "text/javascript"); 
    scriptTag.Attributes.Add("src", scriptUrl); 

更新

這裏是URL

http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&mkt=fr-FR

+0

這是正確的行爲。屬性值應該是html編碼的。 (否則你會有一個無效的html實體&mkt沒有結束分號。)你是什麼意思「沒有得到正確的腳本」? – sisve 2012-04-23 17:04:57

+0

@SimonSvensson因此,「& mkt = fr-FR」不被接受爲有效參數,並且不訪問正確版本的腳本。它需要一個「&mkt = fr-FR」 – NullReference 2012-04-23 17:06:36

+1

&被髮送到您的瀏覽器,該瀏覽器解析html。解析後的字符串最終應該是單個&符號,就像"應該被解析爲一個引號。你有沒有檢查過什麼網址(使用像Fiddler的Firebug)? – sisve 2012-04-23 17:11:52

回答

2

Did you try Literal Control - Mode Property ?

<asp:Literal ID="Literal1" Mode="Encode" Text="<script type='text/javascript' 
    language='javascript' src='Scripts/jquery-1.4.1.min.js'></script>" 
    runat="server"> 
</asp:Literal> 

輸出

<script type='text/javascript' language='javascript' 
             src='Scripts/jquery-1.4.1.min.js'></script>