当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > .NET Ajax的无刷新技术实例详解

ASP.NET
FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用方法
.NET 常用功能和代码小结
在 .NET Framework 2.0 中未处理的异常导致基于 ASP.NET 的应用程序意外退出
asp.net IList查询数据后格式化数据再绑定控件
asp.net sql存储过程
asp.net 简单实现禁用或启用页面中的某一类型的控件
asp.net(c#)获取内容第一张图片地址的函数
The remote procedure call failed and did not execute的解决办法
ASP.NET 在线文件管理
asp.net 读取并修改config文件实现代码
ASP.NET Cookie 操作实现
asp.net Silverlight中的模式窗体
Silverlight中动态获取Web Service地址
asp.net Silverlight应用程序中获取载体aspx页面参数
asp.net 水晶报表隔行换色实现方法
asp.net 获取Gridview隐藏列的值
手动把asp.net的类生成dll文件的方法
asp.net 使用ObjectDataSource控件在ASP.NET中实现Ajax真分页
动态指定任意类型的ObjectDataSource对象的查询参数
asp.net Md5的用法小结

ASP.NET 中的 .NET Ajax的无刷新技术实例详解


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-23   浏览: 128 ::
收藏到网摘: n/a

该开发包的新版本还没有来得及体验,估计新版本中会方便一些,可能会去掉手动的设置Global.asax的Application_Start事件中加上Ajax.Utility.HandlerPath = "ajax";以及其他麻烦的设置。

下载一个.net Ajax开发包,该开发包包括ASP2.0和目前ASP1.1版使用的Ajax,详细地址参见http://ajax.schwarz-interactive.de/,接下来,开始。

  1. 新建一个项目,在引用中添加引用Ajax.dll,Ajax.dll位于下载的压缩包里面。

  2.建立HttpHandler,在web.config里面加上:

 

<configuration>

lt;
system.web>

lt;
httpHandlers>

lt;
add verb="POST,GET"
path="ajax/*.ashx"
type="Ajax.PageHandlerFactory,
Ajax" />

lt;
/httpHandlers>

<system.web>

lt;
/configuration>
 


  3.新建一个类DemoMethods,这个类实现获取客户端MAC地址:


using System;

using System.Web;

namespace AjaxSample

{

/**//// <summary>

/// Summary description for Methods.

/// </summary>

ublic class DemoMethods

{

[Ajax.AjaxMethod]

ublic string GetCustomerMac(string clientIP)
//这里输入客户端IP,这个函数知识测试用,
你也可以写一个其他的简单一点的函数代替

{

tring mac = "";

System.Diagnostics.Process process =
new System.Diagnostics.Process();

rocess.StartInfo.FileName = "nbtstat";

rocess.StartInfo.Arguments = "-a "+clientIP;

rocess.StartInfo.UseShellExecute = false;

rocess.StartInfo.CreateNoWindow = true;

rocess.StartInfo.RedirectStandardOutput = true;

process.Start();

string output = process.StandardOutput.ReadToEnd();

int length = output.IndexOf("MAC Address = ");

if(length>0)

{

mac = output.Substring(length+14, 17);

}

process.WaitForExit();

return mac.Replace("-", "").Trim();

}

}}
 


  4.写javascript,新建一个名为default.js文件如下


function GetMac()

{

var clientIP="192.168.0.1";

//document.getElementById("Mac").value
=DemoMethods.GetCustomerMac(clientIP).value

alert(DemoMethods.GetCustomerMac
(clientIP).value);

}
 


  5.在某个Aspx页面放上一个html 的button在页面上中引用default.js :


lt;
script language="javascript"
src="default.js">
</script>
 


  在INPUT的onclick事件中加上


onclick="javascript:GetMac()"

lt;
INPUT style="Z-INDEX: 101;
LEFT: 392px; POSITION: absolute;
TOP: 176px" type="button"
 

  value="客户端获取IP" onclick="javascript:GetMac();">

  6.在page页面的Page_Load事件中加上

private void Page_Load
(object sender, System.EventArgs e)

{

// 在此处放置用户代码以初始化页面

Ajax.Utility.RegisterTypeForAjax
(typeof(AjaxSample.DemoMethods));

}
 


  注意:typeof(AjaxSample.DemoMethods)中,AjaxSample是命名空间,DemoMethods是要包含要调用方法的类,即上面第3步.新建类DemoMethods

7.修改Global.asax的Application_Start事件,设置Ajax的HandlerPath :


protected void Application_Start
(Object sender, EventArgs e)

{

Ajax.Utility.HandlerPath = "ajax";

}
 

 

  运行看看效果。是不是没有刷新就在服务器端取到客户端的MAC地址?

  需要注意的是:该版本的.net Ajax需要手工在中Global.asax加上Ajax.Utility.HandlerPath = "ajax"; 配置文件web.config必须加上HttpHandler的配置信息!

  该开发包的新版本还没有来得及体验,估计新版本中会方便一些,可能会去掉手动的设置Global.asax的Application_Start事件中加上Ajax.Utility.HandlerPath = "ajax";以及其他麻烦的设置!