2012-04-23 65 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>