Jquery Ajax调用aspx页面方法 (转载)
在asp.net webform开发中,用jQuery ajax传值一般有几种玩法
1)普通玩法:通过一般处理程序ashx进行处理;
2)高级玩法:通过aspx.cs中的静态方法+WebMethod进行处理;
3)文艺玩法:通过WCF进行处理。
第一种和第三种方法不在本文介绍范围之内,下面重点介绍第二种方法。
说明
在我们的印象里 asp.net的Web服务是以.asmx来结尾的,而我们现在的asp.net也能实现Web服务,这是因为默认Web.config中已经添加了System.Web.Handlers.ScriptModule,它是用于管理asp.net中ajax功能的HTTP模块,这样不管用户是请求.asmx文件还是.aspx文件,都会通过此处理程序来处理请求。
后台代码:
using System.Web.Services; //引入命名空间 [WebMethod]
public static string SayHello()
{
return "Hello Ajax!";
}
前台页面代码:
<form id="form1" runat="server">
<div>
<asp:Button ID="btn" runat="server" Text="验证用户" />
</div>
</form>
Javascript代码:
$(function() {
$("#btn").click(function() {
$.ajax({
type: "post", //要用post方式
url: "Demo.aspx/SayHello",//方法所在页面和方法名
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
alert(data.d);//返回的数据用data.d获取内容,如果返回的是C#复杂对象这里返回的就是Json对象,这一点非常Nice
},
error: function(err) {
alert(err);
}
});
});
});
效果:

需要注意的地方
一、data参数写法
//1)普通写法,JSON键值对,如:单个参数的
data:"{newsID:"+ id +"}",
//多个参数的形式:
data:"{newsID:"+ newsID +",name:"+ name +"}",
//2)文艺写法:各种引号,双引号,单引号拼接,如
//单个参数写法:
data:"{'name':'"+ name +"'}",
//多个参数写法:
data: "{'content':'" + $("#content").val() + "','createTime':'" + $("#createTime").val() + "','creator':'" + $("#creator").val() + "'}"
//容易出错!!!!!
二、用QueryString传值是后台取不到的问题
function getArgs(strParame) {
var args = new Object();
var query = location.search.substring(1); // Get query string
var pairs = query.split("&"); // Break at ampersand
for (var i = 0; i < pairs.length; i++) {
var pos = pairs[i].indexOf('='); // Look for "name=value"
if (pos == -1) continue; // If not found, skip
var argname = pairs[i].substring(0, pos); // Extract the name
var value = pairs[i].substring(pos + 1); // Extract the value
value = decodeURIComponent(value); // Decode it, if needed
args[argname] = value; // Store as a property
}
return args[strParame]; // Return the object
}
三、时间问题
WCF 或 模拟Web服务处理JSON时返回时间格式问题。用如下JavaScript代码解决:
// 杂乱的时间
var rawDate = "/Date(1347120000000+0800)/";
// 提取时间字符串
var strDate = rawDate.substr(6, 13);
// 把时间字符串转化成int类型
var intDate = parseInt(strDate);
// 构造一个Date对象
var newDate = new Date(intDate);
// 将时间转化成当地时间格式
var myDate = newDate.toLocaleDateString();
// 最终结果
alert(myDate); // 合并成一句
var resultDate = new Date(parseInt("/Date(1347120000000+0800)/".substr(6, 13))).toLocaleDateString();
四、$.ajax参数详解
//标准的写法:
$.ajax({
type: "post",
dataType: "json",
contentType: "application/json", //注意:WebMethod()必须加这项,否则客户端数据不会传到服务端
data:{如上所述},//注意:data参数可以是string个int类型
url: "List.aspx/DeleteNews",//模拟web服务,提交到方法
// 可选的 async:false,阻塞的异步就是同步
beforeSend:function(){
// do something.
// 一般是禁用按钮等防止用户重复提交
$("#btnClick").attr({disabled:"disabled"});
// 或者是显示loading图片
},
success: function (data) {
alert("success: " + data.d);//注意这里:必须通过data.d才能获取到服务器返回的值
// 服务端可以直接返回Model,也可以返回序列化之后的字符串,如果需要反序列化:string json = JSON.parse(data.d);
// 有时候需要嵌套调用ajax请求,也是可以的
},
complete: function(){
//do something.
$("#btnClick").removeAttr("disabled");
// 隐藏loading图片
},
error: function (data) {
alert("error: " + data.d);
}
});
Jquery Ajax调用aspx页面方法 (转载)的更多相关文章
- Jquery Ajax调用aspx页面方法
Jquery Ajax调用aspx页面方法 在asp.net webform开发中,用jQuery ajax传值一般有几种玩法 1)普通玩法:通过一般处理程序ashx进行处理: 2)高级玩法:通过as ...
- jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法
1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是“a ...
- Jquery Ajax调用aspx页面实例
目前,我会的几种asp.net界面与后台代码交互方式有几种: 1.webform+服务器控件交互: 2.webform+jquery+ajax+一般处理程序交互: 3.webform+jquery+a ...
- asp.net Ajax调用Aspx后台方法
Ajax调用的前提(以aspx文件为例:) 1.首先需要在aspx文件后台中引用using System.Web.Services; 2.需要调用的方法必须是公共的(public).静态的(stati ...
- jQuery中ajax调用当前页面方法
$.ajax({ type: 'POST', url: 'AddressManager.aspx/GetProvince',//AddressManager.aspx当前页面 data: '{cach ...
- JQuery AJAX请求aspx后台方法
利用JQuery封装好的AJAX来请求aspx的后台方法,还是比较方便的,但是要注意以下几点: 1.首先要在方法的顶部加上[WenMethod]的特性(此特性要引入using System.Web.S ...
- Jquery ajax调用后台aspx后台文件方法(不是ashx)
在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下. (1)通过aspx.cs的静态方法+WebMethod进行处理 简单的介绍下 ...
- jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下. [WebMethod] public static string SayHe ...
- .Net中jQuery.ajax()调用asp.net后台方法 总结
利用JQuery的$.ajax()调用.Net后台方法有多种方式, 不多说了 直接上代码 前台代码 <script type="text/javascript"> $ ...
随机推荐
- JQuery事件的链式写法
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- Selenium2学习-003-WebUI自动化实战实例-001-百度搜索
此文主要通过百度搜索功能,进行 Selenium2 的实战实例讲解,文中所附源代码于 2015-01-16 02:01 亲测通过,敬请亲们阅览.希望能对初学 Selenium2 UI 自动化测试编程的 ...
- JQ实现accordion(可折叠)效果
先看效果--这个就是手风琴的效果: 原理:首先默认section1下面的dd可见,其他的全部隐藏:当点击某个obj时候, 快速隐藏全部的dd,然后只有obj.NEXT().show ...
- case语法练习脚本之判断
case语法练习脚本之判断 #!/bin/bash read -p "请输入一个字符,并按enter键确认:" key case "$key" in [a-z] ...
- 安装nodejs+ionic+cordova环境心得
1.安装node-v0.10.38-x64.msi版本(从nodejs中下载最稳定版本,最后安装ionic安不上,然后又安装node-v0.10.38-x64.msi,再安装ionicok了.不知道是 ...
- 零售业数据分析的媒介——BI工具
当你需要从一堆复杂庞大的数据中分析出有用的信息和结论的时,想必你一定觉得力不从心:数据的冗余使得你分析起来困难重重,怎么办呢?今天我们就来讲一下使数据分析变得简单有效的“手段”. 对于当今的中国零售行 ...
- 在C#中使用json字符串
http://jingyan.baidu.com/article/6fb756ecd2b051241858fbef.html
- WPF程序只运行一个实例
1.WPF程序在 启动窗口的构造函数执行InitializeComponent之前判断是否已经存在实例 不涉及服务器情况,可直接进行判断(不在mainwindow的构造函数中判断) // public ...
- 运用bat进行数据库备份
执行Bat脚本 @echo off sqlplus sys/welcome@orcl as sysdba @C:\Users\yangfan\Desktop\login.sql echo 按任意键结束 ...
- 用仿ActionScript的语法来编写html5——第九篇,仿URLLoader读取文件
第九篇,仿URLLoader读取文件 先看看最后的代码 function readFile(){ urlloader = new LURLLoader(); urlloader.addEventLis ...