ASP.NET AJAX 1 Beta的PageMethods限制
今天安装了ASP.NET AJAX 1.0 Beta(见微软发布ASP.NET AJAX 1.0 Beta版),并把一个用到Atlas CTP的项目进行了修改与迁移。迁移并不复杂,只要照着Migration Guide做就行了。
当然也发现了一些问题。最令人意外的是PageMethods不能正常使用了,这应该是Beta的一个BUG。要正常使用PageMethods,请:
- 给要使用的方法加上 Microsoft.Web.Script.Services.ScriptMethod 修饰;
- 该方法必须为public和static的;
- 该方法不能直接使用当前page的controls;
- 该方法不能放在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>