簡體   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