精彩专题推荐:建站之入门课 建站之必修课 建站之关键课 网站价值所在 流量提高专题 css+div 标准 个人网站打造全过程
返回建站学首页
导航:
建站首页 | 网站设计 | 网站开发 | 网站运营 | 网页软件 | 建站指南 | 搜索优化 | 图像处理 | 视频教程 | 书籍教程 | 建站专题
当前位置:首页>网站开发>ajax教程>正文

在ASP.NET中实现AJAX


来源: 时间:07-02-21 点击: 点击这里收藏本文
建立HttpHandler

为了保证正常工作,第一步是在web.config中设置包装器的HttpHandler。不需要详细解释HttpHandlers是什么及其如何工作,只要知道它们用于处理ASP.NET请求就足够了。比如,所有*.aspx页面请求都由System.Web.UI.PageHandlerFactory类处理。类似的,我们让所有对Ajax/*.ashx的请求由Ajax.PageHandlerFactory处理:

<configuration>

<system.web>

<httpHandlers>

<add verb="POST,GET" path="Ajax/*.ashx"

type="Ajax.PageHandlerFactory, Ajax" />

</httpHandlers> 

...

<system.web>

</configuration>

简言之,上面的代码告诉ASP.NET,和指定路径(Ajax/*.ashx)匹配的任何请求都由Ajax.PageHandlerFactory而不是默认处理程序工厂来处理。不需要创建Ajax子目录,使用这个神秘的目录只是为了让其他HttpHandlers能够在自己建立的子目录中使用.ashx扩展.

建立页面

现在我们可以开始编码了创建一个新页面或者打开已有的页面,在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的请求都由自定义的处理程序处理显然,这里的两个脚本标签将由自定义的处理程序处理

9 7 3 1 2 3 4 8 :

  把此文章收藏到:          
广而告之
文章搜索
  • Google JZxue.Com

Copyright © 2005 - 2006 建站学 All rights reserved.