我近来的工作是将我们公司的C/S程序翻译成B/S,B/S采用的技术是ASPX.NET AJAX 1.0. 在C/S程序中有一个用来封装通用方法的类:Function.在我将其搬到B/S程序中时,却出现了意想不到的问题: 我的container.aspx不能局部刷新了?我检查了Function.asmx的编码规则和ScriptManager的引用方法,没有任何异常之处. container.aspx部分代码:<asp:ScriptManager ID="ScriptManager1" runat="server"> <Services> <asp:ServiceReference Path="Function.asmx" /> </Services> </asp:ScriptManager> Function.asmx部分代码:... [ScriptSeriver] ... [WebMethod] public string Audit() { return "Hello World !"; } 难道是因为我同时安装了VS2005和VS2008引起了冲突?可是VS2008是完全能兼容VS2005中的程序的啊. 经过漫长而又反复的探测,包括重建Function.asmx,我发现在[ScriptSeriver]和[WebMothed]只存其一的时候, container.aspx是可以局部刷新的,但我将其全部加上后,container.aspx又不能局部更新了?为什么呢? 为什么在我完全按照ASPX.NET AJAX 1.0的规则使用WebService时,反而异常了呢?!!! ... ... ScriptManager不能正常工作了?可是ScriptManager引用其他.asmx又能正常工作啊?难不成...见鬼了?!! ... ... 不知出于何种假设,我注意到了Function.asmx的命名!!!天哪!!!Function可是JavaScript的保留字啊!!!用Function.asmx来命名,不出错,才就怪了. 也许只有像我这么"幽默"的人,才会犯如此般搞笑的失误吧!但我由衷的希望VS 2008里为ScriptManager添加上 关键字的检测功能. 宝贵的一上午啊!
转载于:https://www.cnblogs.com/fengguangqin/archive/2007/10/22/933677.html
