Posts Tagged ‘ajax’

Microsoft.Web.Extensions.Design.dll 引用错误问题

November 27, 2006 Tags: ,

在开发机器上运行正常的一个ASP.NET站点,发布至测试服务器后出错,提示无法加载Microsoft.Web.Extensions.Design.dll。该站点使用了ASP.NET AJAX 1.0 Beta 2ASP.NET AJAX Control Toolkit,其中AJAX Beta 2安装了core ASP.NET 2.0 AJAX Extensions和ASP.NET 2.0 AJAX Futures November CTP,Control Toolkit为1.0.61106.0版本。

问题原因

这个问题由两个原因引起:

  1. ASP.NET AJAX Control Toolkit引用了Microsoft.Web.Extensions.Design.dll;
  2. core ASP.NET 2.0 AJAX Extensions安装时,如果目标机器上安装了VS,则会安装Microsoft.Web.Extensions.Design.dll,否则不安装。

开发机器必定安装了VS,AJAX Beta 2安装目录下(默认为C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025)及GAC中有Microsoft.Web.Extensions.Design.dll。因此开发机器上跑使用了Control Toolkit的站点不会发生任何问题。而测试服务器没有安装VS,就over了。

解决方案

解决方案有两种:

  1. 升级ASP.NET AJAX Control Toolkit至最新的1.0.61121.0版本;该版本去掉了对Microsoft.Web.Extensions.Design.dll的(错误)引用; or
  2. 拷贝一个Microsoft.Web.Extensions.Design.dll至站点的bin目录。

Firefox下带UpdatePanel页面的刷新问题

November 13, 2006 Tags: , , ,

遇到了这样一个问题:在一个asp.net页面上使用UpdatePanel(ASP.NET AJAX为Beta 2版本),当在Firefox下浏览时,如果手动刷新(refresh)页面,会出现“the state information is invalid for this page and might be corrupted.”错误。在IE下无此问题。

问题的原因:有可能为Firefox缓存了页面的JavaScript等内容,造成刷新页面后ViewState被破坏。

解决方法:显式去掉缓存。在Page_Load方法中,加入

Response.Cache.SetNoStore();

ASP.NET AJAX 1 Beta的PageMethods限制

October 24, 2006 Tags: , , ,

今天安装了ASP.NET AJAX 1.0 Beta(见微软发布ASP.NET AJAX 1.0 Beta版),并把一个用到Atlas CTP的项目进行了修改与迁移。迁移并不复杂,只要照着Migration Guide(Doc格式)做就行了。
当然也发现了一些问题。最令人意外的是PageMethods不能正常使用了,这应该是Beta的一个BUG。要正常使用PageMethods,请:

  1. 给要使用的方法加上 Microsoft.Web.Script.Services.ScriptMethod 修饰;
  2. 该方法必须为public和static的;
  3. 该方法不能直接使用当前page的controls;
  4. 该方法不能放在codebehind文件中,而是必须放在aspx文件中(真变态,这应该是BUG的源头,前3个都是PageMethods的正常要求)。
给个例子:
<script runat="server“>
[System.Web.Services.WebMethod]
[Microsoft.Web.Script.Services.ScriptMethod]
public static string HelloWorld()
 {
returnhello world“;
}
</script>