繁体   English   中英

ASP.NET实体在代码隐藏中破坏了javascript

[英]ASP.NET entities breaks javascript in codebehind

我正在使用HyperLink控件在代码隐藏中执行以下操作:

hlNonTerminal.Attributes [“ onclick”] = string.Format(“ highlightTokenUsage('{0}');”,nonTerminal);

但是'字符被asp.net替换,因此浏览器得到:

<a id="..." onclick="highlightTokenUsage(&#39;CITY&#39;);">城市</a>

如何关闭或绕过它? 这发生在用户控件内部,但是包含它的页面具有ValidateRequest =“ false”。

编码机制(可能)是在AttributeCollection类的基础Render方法中正确实现的,因此重写服务器控件并修改呈现逻辑将对此进行更改。 但是,我强烈建议您不要这样做,因为当前的实现效果很好。

您向我们显示的<a id="..." onclick="highlightTokenUsage(&#39;CITY&#39;);">CITY</a>链接非常有效。 &#39; 在调用highlightTokenUsage方法之前,代码会解码为'字符,因此对您没有任何危害。

顺便说一句,请注意,通过后面的代码进行这种属性操纵(实际上是将HTML和JavaScript代码混合在一起)违反了“ Unobtrusive Javascript ”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM