ASP.NET Ajax发布时异步刷新失效的问题解决方法
在一个小型项目中,我使用了Ajax Extensions中的UpdatePanel控件,在本地调试运行时好的,可以看到ajax的异步刷新效果,但是当发布到安装了.net framework 3.5 sp1的server 2003上去之后,发现ajax效果没有了,也就是说本来的异步提交变成了非Ajax方式的POST,而且没有报告任何错误。
对比开发时和运行时发送到浏览器的html,发现开发时和运行时生成的html相比多了一下下面的javascript:
<script type="text/javascript">
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ScriptManager1', document.getElementById('form1'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tUpdatePanel1'], ['Button1'], [], 90);
//]]>
</script>
这段代码本来应该是<Asp:ScriptManager>这个控件来生成的,但是部署到服务器上之后并没有生成这段代码。
经过多方查找,web.config文件的congfiguration节如果设置了<xhtmlConformance mode="Legacy"/>,那么ajax将会失效,导致如上描述的情况。
但是我的项目的web.config并没有设置这一项。
不过我在我的项目中显示的加上了<xhtmlConformance mode="Transitional"/>之后,功能正常了,那段javascript出现了。
最后发现原来是因为我的项目是部署在一个asp.net网站的虚拟路径下的,在这个网站的根目录下面的web.config文件的congfiguration节设置了<xhtmlConformance mode="Legacy"/>,因为这个网站是从vs 2003迁移过来的,vs在自动转换的时候就加上了这句话。
就是因为这个小小的问题,导致了我的web应用中的ajax失效了。
在发布后不报错,在调试的页面回报js"Sys"为定义错误!可能是.net 3.5环境问题,有待高手详细说明!
相关文档:
Request 属性提供对 HttpRequest 类的属性和方法的编程访问。由于 ASP.NET 页包含对 System.Web 命名空间(含有 HttpContext 类)的默认引用,因此在 .aspx 页上可以引用 HttpContext 的成员,而不需要对 HttpContext 的完全限定类引用。例如,可只使用 Request.Browser 获取客户端浏览器的功能。但是,如果要从 ASP.NET 代 ......
对于很多 Web 开发人员来说,只需要生成简单的请求并接收简单的响应即可;但是对于希望掌握 Ajax 的开发人员来说,必须要全面理解 HTTP 状态代码、就绪状态和 XMLHttpRequest 对象。在本文中,Brett McLaughlin 将向您介绍各种状态代码,并展示浏览器如何对其进行处理,本文还给出了在 Ajax 中使用的比较少见的 HTTP 请求。 ......
搜索引擎优化对任何面向公众的网站来说都非常重要,ASP.net 4.0 为此就做了大量改造。这些改进包括如下:
301
永久性重定向
随着时间的迁移,网站的一些页面地址会发生变化,这会导致搜索引擎收录的链接地址、用户收藏的地址失
效。Response.Redirect() 就是解决这个问题的。但是Response.Redirect 有以下问题:
Respo ......
在
vs2008为asp.net ajax添加js智能感知
今天找了好久,终于搞清楚了,scriptManager控件支持js智能感知,而从其继承的toolkitScriptManager不支持。至少在
vs2008b2中是这样。
要在js文件中添加asp.net ajax的js智能感知(与scriptManager控件无关),在js文件的开头添加这样一行即可:
//
/<referen ......
使用WebClient自动填写并提交ASP.NET页面表单
在.NET中通过程序填写和提交表单还是比较简单。比如,要提交一个如下图所示的登录表单:
填写和提交以上表单的代码如下:
&nb ......