[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个误解

posted @   博客园团队  阅读(4528)  评论(16编辑  收藏  举报
编辑推荐:
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
阅读排行:
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· autohue.js:让你的图片和背景融为一体,绝了!
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
点击右上角即可分享
微信分享提示