惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
量子位
腾讯CDC
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
The Hacker News
The Hacker News
T
The Exploit Database - CXSecurity.com
B
Blog
S
SegmentFault 最新的问题
P
Privacy & Cybersecurity Law Blog
T
Threatpost
博客园 - 聂微东
T
Tailwind CSS Blog
The Last Watchdog
The Last Watchdog
C
Check Point Blog
N
Netflix TechBlog - Medium
D
DataBreaches.Net
爱范儿
爱范儿
IT之家
IT之家
S
Secure Thoughts
M
MIT News - Artificial intelligence
NISL@THU
NISL@THU
C
Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
有赞技术团队
有赞技术团队
A
Arctic Wolf
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Proofpoint News Feed
Spread Privacy
Spread Privacy
Schneier on Security
Schneier on Security
Simon Willison's Weblog
Simon Willison's Weblog
G
GRAHAM CLULEY
雷峰网
雷峰网
Project Zero
Project Zero
博客园 - Franky
H
Heimdal Security Blog
A
About on SuperTechFans
Security Latest
Security Latest
Webroot Blog
Webroot Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Hugging Face - Blog
Hugging Face - Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - 几米天空

wp7版泡泡堂 共享XexDash源码 都是"框"字惹得祸 结合AspNetPager6.0无刷新分页,排序(dataGrid)--代码讲解一 我的数据库操作类EMESqlHelper AspNetPager6.0分页控件(针对ajax) 增强版 web的简单继承应用--页面的基类PageBase sql 分页存储过程 ASP.NET 调味品:AJAX js宝典学习笔记【转载】 - 几米天空 - 博客园 WEB应用程序中的进度条 .net打包自动安装数据库 AJAX基础教程 Google Suggest的简略分析 基于js的动态下拉菜单 http/1.1 500 server error错误的解决方法 Ajax程序设计入门 Ajax.net中与服务器控件的交互使用 Ajax程序设计入门
Ajax.Net快速入门
几米天空 · 2006-04-22 · via 博客园 - 几米天空

现在的项目准备用ajax,用ajax.net实现,而不是atlas,所以先看下ajax.net,Ajax.Net现在的最新版本是AjaxPro5.11.4.2,下载地址是:www.schwarz-interactive.de

首先我们新建个项目,名字是AjaxPro,我用的是vs2005beta2版本。

右击站点名字点add reference添加对我们刚刚下载来的那个叫AjaxPro.2.dll的引用,如果你用的是vs2003,则添加对AjaxPro.dll的引用,然后我们在添加个web.config文件(很郁闷的是vs2005不再自动添加web.config文件拉),修改web.config如下:

<system.web> 

<httpHandlers>

<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>

</httpHandlers>

意思是所有的ajaxpro/*.ashx请求都由Ajax.PageHandlerFactory处理,而不是由默认的System.Web.UI.PageHandlerFactory处理程序工厂来处理。

我们现在给Default.aspx.cs文件添加个名字空间namespace MyDemo,这里更加郁闷的是为什么vs2005beta2怎么不给你自动添加名字空间啊?和2003怎么完全不同呢?

现在我们写个AjaxMethod服务器端方法,他和普通的服务器方法唯一不同的地方就是他必须要在方法的上面添加个[AjaxPro.AjaxMethod],代码如下:

[AjaxPro.AjaxMethod]

public DateTime GetServerTime()

{

return DateTime.Now;

}

[AjaxPro.AjaxMethod]

public int AddTwo(int firstInt, int secondInt)

{

return firstInt + secondInt;

}

我们还必须在Page_Load里面把这个类注册下,如下:

protected void Page_Load(object sender, EventArgs e)

{

AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));

}

这个时候我们还必须修改aspx页面的<%@Page指令行,因为我们在后台搞了个名字空间,如下:Inherits="MyDemo._Default"也就是要把名字空间也写上。我们再写客户端脚本来调用服务器方法。代码里有详细的注释,前台Default.aspx代码:

<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="MyDemo._Default" %>
            

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"

"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>Untitled Page</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<input id="Button1" type="button" value="获得服务器时间"

onclick="getServerTime();" />

<input id="Text1" type="text" />

<input id="Text2" type="text" />

<input id="Button2" type="button" value="得到两个文本框的和

" onclick="add(document.getElementById('Text1').value,

document.getElementById('Text2').value)" />

</div></form>

<script type="text/javascript">

function getServerTime()

{

//MyDemo._Default.GetServerTime()得到从服务器传来的数据是object,要写.value

alert(MyDemo._Default.GetServerTime().value);

}

function add(a,b)

{

//把文本框的值转换成int

var a1 = parseInt(a);

var b1 = parseInt(b);

//第1、2参数为服务器方法所需要的参数,后面一个是如果服务器返回数据

//客户端要处理这些数据的js函数名,他有个参数就是从服务器传来的数据

MyDemo._Default.AddTwo(a1,b1,getAdd);

}

function getAdd(rel)

{

//要加上.value

alert(rel.value);

}

</script>

</body>

</html>

后台Default.aspx.cs代码:

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

namespace MyDemo

{

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));

}

[AjaxPro.AjaxMethod]

public DateTime GetServerTime()

{

return DateTime.Now;

}

[AjaxPro.AjaxMethod]

public int AddTwo(int firstInt, int secondInt)

{

return firstInt + secondInt;

}

}

}

按F5运行结果如下,firefox里面测试通过:

            

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

namespace MyDemo

{

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));

}

[AjaxPro.AjaxMethod]

public DateTime GetServerTime()

{

return DateTime.Now;

}

[AjaxPro.AjaxMethod]

public int AddTwo(int firstInt, int secondInt)

{

return firstInt + secondInt;

}

}

}