Posts Tagged ‘pagemetods’

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()
 {
return "hello world";
}
</script>