正 文

在ASP.NET中实现AJAX


www.7dspace.com  更新日期:2005-11-1 4:54:18  七度空间


  建立页面

  现在我们可以开始编码了。创建一个新页面或者打开已有的页面,在file后的代码中,为Page_Load事件添加以下代码:

public class Index : System.Web.UI.Page{
  private void Page_Load(object sender, EventArgs e){
      Ajax.Utility.RegisterTypeForAjax(typeof(Index));    
      //...  
  }
  //...
}

  调用RegisterTypeForAjax将在页面上引发后面的JavaScript(或者在页面中手工加入以下两行代码):

<script language="javascript" src="Ajax/common.ashx"></script>
<script language="javascript"
src="Ajax/Namespace.PageClass,AssemblyName.ashx"></script> 

  其中最后一行的含义是:

  Namespace.PageClass——当前页面的名称空间和类(通常是@Page指令中Inherits属性的值)

  AssemblyName——当前页面所属程序集的名称(通常就是项目名)

  下面是AjaxPlay项目中sample.aspx页面的结果例子:

<%@ Page Inherits="AjaxPlay.Sample" Codebehind="sample.aspx.cs" ... %>
<html>
<head>
  <script language="javascript" src="Ajax/common.ashx"></script>
  <script language="javascript"
          src="Ajax/AjaxPlay.Sample,AjaxPlay.ashx"></script>
</head>
  <body>  
    <form id="Form1" method="post" runat="server">
      ...
    </form>  
  </body>
</html>

  可以在浏览器中手工导航到src路径(查看源代码,复制粘贴路径)检查是否一切正常。如果两个路径都输出一些(似乎)毫无意义的文本,就万事大吉了。如果什么也没输出或者出现ASP.NET错误,则表明有些地方出现问题。

  即便不知道HttpHandlers如何工作,上面的例子也很容易理解。通过web.config,我们已经保证所有对Ajax/*.ashx的请求都由自定义的处理程序处理。显然,这里的两个脚本标签将由自定义的处理程序处理。

  创建服务器端函数

  现在来创建可从客户端调用中异步访问的服务器端函数。因为目前还不支持所有的返回类型(不用担心,将在目前的基础上开发新的版本),我们继续使用简单的ServerSideAdd函数吧。在file后的代码中,向页面添加下列代码:

[Ajax.AjaxMethod()]
public int ServerSideAdd(int firstNumber, int secondNumber)
{
  return firstNumber + secondNumber;
}

  要注意,这些函数具有Ajax.AjaxMethod属性集。该属性告诉包装器这些方法创建javaScript代理,以便在客户端调用。

6页,页码:[1] [2] [3] [4] [5] [6] 

上一篇:关于ebXML和UDDI的疑惑
下一篇:用好Google本地搜索有技巧
作者:Karl Seguin  来源:MSDN ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐