2010-11-28 41 views
0

我做在codebhind與超鏈接控制以下操作:ASP.NET實體打破的JavaScript代碼隱藏在

hlNonTerminal.Attributes [ 「點擊」] =的String.Format(「highlightTokenUsage( '{0}'); 「,nonTerminal);

但「字符被替換asp.net因而瀏覽器獲得:

<一個ID = 」...「 的onclick = 」highlightTokenUsage(&#39; CITY &#39);「 > CITY </a >

如何關閉此功能或繞過它?這發生在用戶控件內部,但包含它的頁面具有ValidateRequest =「false」。

+1

你爲什麼要這樣?在&#39將是HTML的轉義爲「它傳遞給JavaScript引擎之前,所以無論所遇問題並非來自於此。 – erikkallen 2010-11-28 15:47:49

回答

0

編碼機制(可能)正好在AttributeCollection類的基礎Render方法中實現,因此覆蓋服務器控件並修改渲染邏輯將改變它。不過,我嚴格建議你不要這樣做,因爲目前的實施工作正常。我們的<a id="..." onclick="highlightTokenUsage(&#39;CITY&#39;);">CITY</a>鏈接是完全有效的。在調用highlightTokenUsage方法之前,&#39;代碼被解碼爲'字符,因此它不會對您造成任何傷害。

順便說一句,請注意,這種通過代碼屬性背後操縱的(實際上,混合HTML和JavaScript代碼)是針對「Unobtrusive Javascript」。