[英]ASP.NET entities breaks javascript in codebehind
我正在使用HyperLink控件在代码隐藏中执行以下操作:
hlNonTerminal.Attributes [“ onclick”] = string.Format(“ highlightTokenUsage('{0}');”,nonTerminal);
但是'字符被asp.net替换,因此浏览器得到:
<a id="..." onclick="highlightTokenUsage('CITY');">城市</a>
如何关闭或绕过它? 这发生在用户控件内部,但是包含它的页面具有ValidateRequest =“ false”。
编码机制(可能)是在AttributeCollection类的基础Render方法中正确实现的,因此重写服务器控件并修改呈现逻辑将对此进行更改。 但是,我强烈建议您不要这样做,因为当前的实现效果很好。
您向我们显示的<a id="..." onclick="highlightTokenUsage('CITY');">CITY</a>
链接非常有效。 '
在调用highlightTokenUsage方法之前,代码会解码为'字符,因此对您没有任何危害。
顺便说一句,请注意,通过后面的代码进行这种属性操纵(实际上是将HTML和JavaScript代码混合在一起)违反了“ Unobtrusive Javascript ”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.