在Asp.net超链接属性上禁用HTML编码

在Asp.net超链接属性上禁用HTML编码,asp.net,html-encode,Asp.net,Html Encode,我在usercontrol上有一个超链接,在其中我在服务器端动态设置了onlick事件,如下所示: this.Attributes["onclick"] = string.Format("javascript:alert('{0}')", base.NavigateUrl); 问题是,当Asp.net呈现页面时,它会以如下方式结束 <a href='...' onclick="javascript:alert(&#39;TEST&#39;)>LINK</a&g

我在usercontrol上有一个超链接,在其中我在服务器端动态设置了
onlick
事件,如下所示:

this.Attributes["onclick"] = string.Format("javascript:alert('{0}')", base.NavigateUrl);
问题是,当Asp.net呈现页面时,它会以如下方式结束

<a href='...' onclick="javascript:alert(&#39;TEST&#39;)>LINK</a>

这显然不是有效的Javascript。使用
而不是
也无济于事,生成的HTML是
警报(“测试”)

这有什么办法吗


谢谢。

onclick=“javascript:alert(';TEST';)”
非常有效。解析页面时,在javascript处理值之前,实体应该被替换为对应的实体。因此在第1步中,HTML解析器将属性值更改为
javascript:alert('TEST');
,这是有效的JavaScript。

onclick=“JavaScript:alert(';TEST';)”
是完全有效的。解析页面时,在JavaScript处理值之前,应该用对应的实体替换实体。因此在第1步中,HTML解析器将属性值更改为
JavaScript:alert('TEST');
,这是有效的JavaScript。

使用Jquery时它不起作用

服务器端:

this.Attributes["onclick"] = "$('#button').click();";
客户端:

onclick="$(&amp;#39;#button&amp;#39;).click();" gives an error.

在客户端是否有“真实”的单引号?

使用Jquery时,它不起作用

服务器端:

this.Attributes["onclick"] = "$('#button').click();";
客户端:

onclick="$(&amp;#39;#button&amp;#39;).click();" gives an error.
在客户端是否有“真正的”单报价?

royu

不幸的是,微软认为这是一种“安全功能”,他们并不真正关心浏览器或JavaScript的兼容性。覆盖它的一种方法是使用Eval([string]),而不是纯文本。在这种情况下,不应该对值进行编码。


不幸的是,微软认为这是一个“安全特性”,他们并不真正关心浏览器或JavaScript的兼容性。覆盖它的一种方法是使用Eval([string])而不是纯文本。在这种情况下,值不应该被编码。

Oh thanx,我一直在直接检查HTML。Oh thanx,我一直在直接检查HTML