[ASP.NET]LinkButton控件引起的“WebForm_PostBackOptions is not defined"


你還在用ASP.NET Web Forms嗎?如果在用的話,你可要小心了:

千萬不要使用LinkButton控件!

為什么呢?

請看ASP.NET代碼:

<asp:LinkButton Text="Post" runat="server" id="lbPost"/>

請看運行時的頁面HTML代碼:

<a id="MainContent_lbPost" href="javascript:__doPostBack(&#39;ctl00$MainContent$Post&#39;,&#39;&#39;)">Post</a>

問題來了!根據我們遇到的實際情況,某個未知的軟件會造成在點擊"Post"鏈接時Javascript代碼不能正常執行(可能這個軟件是出於安全考慮),引發“WebForm_PostBackOptions is not defined"異常。

這個問題困擾了我們一個多月,問題是多個用戶反饋的。而我們無法重現這個問題,解決起來很棘手,最后,一閃而過的想法才讓我們猜測到這個原因。

解決方法

棄用asp:LinkButton,改用asp:Button。

該方法已經通過驗證,之前遇到這個問題的用戶已經確認問題已解決。

由於無法重現這個問題,我們無法找出究竟是哪個未知軟件引起的。

小結

問題很簡單,解決方法也很簡單,但這個問題的現象不具獨特性,很費周折,網上一搜索,滿網盡是“WebForm_PostBackOptions is not defined",當時找到的覺得稍微有點價值的是WebResource.axd動態壓縮可能會引起這個問題,卻讓我們誤入歧途,浪費了很多時間。在幾乎絕望,准備用ASP.NET MVC重寫整個頁面時,問題的線索一下子蹦了出來。那種感覺你懂的!

也許從外人看來程序員性格內向、缺乏情趣,可是他們沒有看到程序員在解決問題時眼中放出的光芒,他們也不知道程序員內心所經歷的精彩世界!

讓他們知道吧,用博客寫出程序員的精彩世界!

 

推薦閱讀

獻給奮戰在一線的程序員:關於性格內向者的10個誤解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM