方法一:使用一般处理程序
asp.net可以使用一般处理程序(ashx)来配合ajax。
一般处理程序可以处理任何请求。
缺点:需要手动做请求参数的获取。对于返回值需要手动格式化字符串。
方法二:微软AJAX解决方案
1. ASP.NET中内置的简化AJAX开发的控件UpdatePanel。
(1)添加ScriptManager控件。一般放到页面的最上面。
(2)添加UpdatePanel控件。将需要使用AJAX效果的页面放入UpdatePanel中。对该控件的事件处理,就可以实现AJAX效果。
*原理:
1.UpdatePanel实现的Ajax会把页面的ViewState,以及其他表单数据都发生给服务器。相当于提交了一次正常的表单。
2.服务器端生成UpdatePanel中控件的新HTML。返回给个客户端,页面自动把接受到的HTML重新更新到UpdatePanel中去。
*实质:这种方式的AJAX与正常的一次表单提交没有多大区别。每次提交,服务器端的Page对象生命周期的事件都会触发。
*优点:应用非常简单。
*缺点:冗余。通讯量大。
*应用:UpdatePanel用来实现一些对性能要求不高的需求非常方便。
2. Timer实现定时AJAX效果。
(1)添加Timer定时器控件。放入UpdatePanel中。
(2)设定Timer定时器的Interval,触发时间间隔。
(3)编写Timer1_Tick()事件处理代码。
3. UpdateProgress显示“正在加载数据”
方法三:AJAXToolkit轻量级控件
微软的开源控件。属于第三方。
需要添加到项目中。
开发简单,效率不错。
方法四:WCF简化AJAX
优点轻量级
【添加新项】-->【启用了AJAX的WCF服务】
例如:新建一个PersonService.svc。
说明:服务代码文件的后缀名为svc。
1.WCF服务IDE会自动生成方法DoWork()。
注意:客户端需要访问的方法上必须要有[OperationContract]。
例:添加客户端需要访问的方法GetPerson(int id)该方法通过参数id返回,对应的Person对象。
namespace WCFAJAX
{
//.....
public class PersonService
{
[OperationContract]
public Person GetPerson(int id)
{
return new Person(){Name="tom",Age=24};
}
[OperationContract]
public void DoWork()
{
}
}
public class Person
{
public string name{get;set;}
public int Age{get;set;}
}
}
2.页面上需要添加ScriptManager控件。对ScriptManager控件Services属性的对话框中,添加引用服务。
例如:
即【行为】-->Path,添加服务路径。如~/PersonService.svc。
3.在页面的<script>中编写处理方法
例如:按下按钮,得到服务器上id为1的Person。
添加按钮事件
<input id="Button1" type="button" value="button" onclick="return Button1_onclick()" />
在<script>中处理事件。
function Button1_onclick(){
PersonService.GetPerson(1,
function(data){
//请求成功处理函数
alert(data.Name);
},
function(){
//请求失败处理函数
alert("请求失败");
}
);
}
有时候会出现一些IDE问题,在页面写<script>时,添加的服务对象不能被IDE提示。可以先关闭页面,再打开页面。
优点:相当于添加用JavaScript代码调用C#方法。形式上比较简单。
附加:
json
asp.net服务器端生成json,可以使用JavaScriptSerializer类,将一个C#对象序列化为json对象。
JavaScriptSerializer类在 .Net 3.x 被支持。在2.0之下,使用第三方类来实现。
方法如下:
JavaScriptSerializer jss=new JavaScriptSerializer();
//将C#对象序列化 JavaScript对象。
string json1=jss.Serialize(new Person(){Name="tom",Age="30"});
//将C#数组序列化为JavaScript的Array。
string json2=jss.Serialize(new string["a","b","c"]);
//将C#对象数组序列化为JavaScript对象数组。
Person[] ps=new Person[]{new Person(){Name="tom",Age=21},new Person(){Name="cat",Age=22}};
string json2=jss.Serialize(ps);
jquery解析text为json的方法:
$.post("JsonTest.ashx",function(data,status){
var person = $.parseJSON(data);
//访问 person.Name person.Age。
})
分享到:
相关推荐
本程序ASP.NET中使用AJAX验证的实,实现客户端的AJAX的验证。
直接用代码介绍了如何在asp.net中利用ajax向数据库中插入数据
在ASP.NET(C#)中使用Ajax包-AjaxPro! 阿贾克斯 Web2.0时代的基础 嘎嘎
本卷从最易于理解和使用的那部分入手,介绍ASP.NET AJAX框架中能够与传统ASP.NET无缝对接的服务器端部分,包括服务器端ASP.NET AJAX Extensions与ASP.NET AJAX Control Toolkit。这部分内容不需要读者有任何的客户端...
本文介绍了使用AJAX和ASP.net编写Web应用程序的一个简单方法。同时,讨论了使用AJAX的好处和不足。为了举例说明,本文给出了相应的JavaScript代码和用C#.NET编写的ASP.NET代码。
asp.net调用 jquery ajax 后台使用一般处理程序或者当前页方法
asp.net+Ajax,实现Excel文件导出
比实例1多了传参数的函数
添加用户时验证用户是否存在 vs2010开发环境 asp.net中jquery调用Ajax 和asp.net MVC中jquery调用Ajax 实例
本卷侧重分析ASP.NET AJAX框架的客户端部分,包括对JavaScript 在面向对象、DOM 操作方面的扩展、ASP.NET AJAX 客户端组件、ASP.NET AJAX XML脚本等,还介绍了ASP.NET AJAX 框架为开发者在客户端用JavaScript 与...
ASP.NET视频教程 AJAX控件之Animation,即asp.net 中的Ajax 动画控件。
asp.net+ajax 写的无刷新登录技术的例子,没有使用C#的控件,代码很完整,可以直接使用,//声明XMLHttpRequest对象 var xmlHttp;//创建XMLHttpRequest对象 function createXMLHTTP()
完全手册:ASP.net.Ajax电子教程
ASP.NET 3.5和AJAX! 值得下载看看!资源免费,大家分享!!
AJAX+asp.net 实现的在线聊天
asp.net中ajax程序使用timer控件是源程序快点下载吧!!
ASP.NET Ajax基础ASP.NET Ajax基础ASP.NET Ajax基础
asp.net+ajax 制作一个简单的社区聊天室,asp.net 源码
一个优秀的基于ASP.NET+ajax实现的无刷新版本聊天室系统源码。
本书共分为15章,从初识ASP.NET AJAX开始,首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control Toolkit中的全部控件,如AutoComplete、PasswordStrength、CollapsiblePanel、Tabs、...