VS2005中Ajax不起作用的问题

.net相关   2008-02-01 12:07   阅读183   评论0  
字号:    
    症状:在我原来的一个项目的一个页面上拉上ScriptManager和UpdatePanel,把要使用ajax处理的内容放入UpdatePanel内,测试,页面还是和没有使用ajax一样的进行刷新,ajax没有起作用。
    测试:把相同的页面拉出来,放到另一个新项目中,再测试,页面不刷新,ajax工作正常。
    分析:相同的页面,在不同的放到不同的项目中,ajax一个起作用,一个不起作用,说明页面本身没有问题,问题应该出在web.config配置文件上。
    解决过程:把ajax能正常工作的项目的web.config覆盖ajax不能正常工作的项目的web.config文件,原来不能正常工作的ajax可以正常工作了。于是用ajax能正常工作的web.config文件和ajax不能正常工作的web.config文件逐项比较,进行添加/删除测试,最后终于找到了原因:是<system.web>下的<xhtmlConformance mode="Legacy"/>项造成的ajax不能起作用。删除该项后ajax工作正常。
    原因分析:查msdn,
xhtmlConformance元素为“配置符合 XHTML 1.0 的控件呈现。”,有三个选项:Transitional,Legacy,Strict。默认的Transitional:XHTML 1.0 Transitional;Strict表示“符合 XHTML 1.0 Strict”;Legacy表示“恢复为符合 1.1 版呈现行为而进行的大量呈现更改。”。这说明微软的ajax在XHTML 1.0 的控件呈现恢复为符合 1.1 版呈现行为而进行的大量呈现更改时工作不正常
posted on 2009-08-19 10:56  poop  阅读(356)  评论(0编辑  收藏  举报