脆弱的ASP.NET AJAX

以前使用过Atlas,现在ASP.NET AJAX已经可以使用了。如是兴致勃勃的向自己的网站里加入该功能。环境:asp.net 2.0 +vs2005

使用ASP.NET AJAX的目的:

(1)文章的正文、相关文章和评论是在同一个页面的,需要把文章正文和相关文章的ViewState='true',这样在发表评论的时候才能保持页面的数据能正常显示。但当正文很长的时候 __VIEWSTATE的值将会很大,要几十K甚至更多。使用 ASP.NET AJAX后局部刷新这些ViewState 可以设置为false。减少 __VIEWSTATE的大小,增加访问速度。

(2)界面友好性。用户不同总是看到空白的的东西了。

开始行动:
http://asp.net/ajax/downloads/archive/

里下载了 ASP.NET 2.0 AJAX Extensions 1.0,和帮助文档。安装和配置好后建立了一个简单的测试项目发现运行正常。于是决定应用到网站上去。这个时候发生了一个令人讨厌的问题
在发表评论的时候发现页面是刷新的,而且把文章正文和相关文章的ViewState='false'后,评论postback后原来的内容都没有了。。。。
在测试项目上好好的啊,,项目里还使用了 Url Rewriter/Enterprise Lib/log4net,难道和它们有冲突的地方??
自己使用了笨方法修改web.config,依次把三者都排除进行测试。。。好长时间后。。。找到了问题所在--web.config 里的 <xhtmlConformance mode="Legacy"/>
只要它在,ASP.NET AJAX就无法使用!!!把mode 的值修改成Transitional或者Strict后发现ASP.NET AJAX可以正常使用了,以上的两个目的都达到了。正在高兴的时候发现原来的一些功能却莫名其妙的失效了。。。。。原来网站不完全符合XHTML 1.0 Transitional标准。。。

http://blog.joycode.com/scottgu/archive/2006/12/12/88873.aspx
也提到了这个问题。ASP.NET AJAX只要用在完全符合XHTML 1.0 Transitional标准的页面上时候才能使用的,否则自己写的脚本和它的脚本可能会冲突!!导致原来的功能异常。

唉。。。把网站修改成完全符合标准的也不是意见容易的事情啊!现在只能放弃这个东西了。。。。

大家有解决办法的告诉我啊,谢谢!








你可能感兴趣的:(asp.net)