我最近將網站從一臺服務器遷移到另一臺服務器。這些網站已經在IIS上正確設置並且能夠連接。但是,我正面臨着asp.net控件的.net添加的前綴問題。 asp.net控件(如文本框)會自動爲控件的名稱加上ct100_前綴。這是工作正常,因爲我引用JavaScript中的ct100_nameofthecontrol。但現在的前綴已更改爲CT100的$代替ct100_
例如
我有名字頁面上txtSearchName一個asp.net控制文本框。當頁面獲取呈現的文本框的名字從txtSearchName改爲ctl00_bodyContent_txtSearchName但經過遷移,相同的名稱被更改爲ctl00 $ $的BodyContent txtSearchName。
有沒有辦法或者改變_以$配置或我要改變JavaScript代碼的引用?
請幫助
感謝
更新的解決方案:
的代碼應有的ClientIDMode設置爲靜態的控制。但是,應用程序已經由開發人員構建,並且在更改服務器時引發了此錯誤。如果需要更改代碼並且可能輕易破壞代碼,那麼執行這項任務非常麻煩。 _和$符號依賴於CLR版本。我在IIS管理器上的應用程序池中將CLR版本從V4.0更改爲V2.0,並且一切都恢復正常。
你可以用你的控件嘗試'ClientIDMode =「Static」'。這將保證任何名字與你會給它的ID不會改變它。 –
您應該從ASP.NET獲取客戶端ID,而不要依賴任何其他行爲。這樣它會一直工作。現在一切都很容易就會因爲結構上的一點變化而中斷。或者使用像Afnan這樣的靜態名稱。 –