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获取内容 },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传值是后台取不到的问题
< script type = "text/javascript" >function getArgs(strParame) {var args = new Object();var query = location.search.substring(1); // Get query stringvar pairs = query.split("&"); // Break at ampersandfor (var i = 0; i < pairs.length; i++) {var pos = pairs[i].indexOf('='); // Look for "name=value"if (pos == -1) continue; // If not found, skipvar argname = pairs[i].substring(0, pos); // Extract the namevar value = pairs[i].substring(pos + 1); // Extract the valuevalue = decodeURIComponent(value); // Decode it, if neededargs[argname] = value; // Store as a property }return args[strParame]; // Return the object } < /script>
三、时间问题
WCF 或 模拟Web服务处理JSON时返回时间格式问题。解决方法如下:// 杂乱的时间 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页面方法相关推荐
- ajax调用ashx的方法,jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法
1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是&q ...
- aspx后台调用前台jquery_Jquery Ajax调用aspx页面方法
在asp.net webform开发中,用jQuery ajax传值一般有几种玩法 1)普通玩法:通过一般处理程序ashx进行处理: 2)高级玩法:通过aspx.cs中的静态方法+WebMethod进 ...
- ajax离开页面方法,jQuery中ajax调用当前页面方法
$.ajax({ type: 'POST', url: 'AddressManager.aspx/GetProvince',//AddressManager.aspx当前页面 data: '{cach ...
- asp.net ajax1.0基础回顾(六):调用ASPX页面方法
在aspx页面中,可能通过asp.net ajax调用其页面方法,具体设置如下. 1.服务器端代码(页面对象代码): using System.Web; using System.Web.Servic ...
- 隐藏ajax的调用地址,c# – ASP.NET jQuery Ajax调用代码隐藏方法
我对Web开发非常新鲜,但在开发方面有很多经验.我有一个ASP页面有几个输入字段和一个提交按钮.这个提交按钮纯粹叫$.ajax,我打算在代码隐藏文件中调用一个方法.不过,我注意到两件有趣的事情.首先, ...
- Jquery ajax调用后台aspx后台文件方法(不是ashx)
在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下. (1)通过aspx.cs的静态方法+WebMethod进行处理 简单的介绍下 ...
- ASPX页面AJAX调用ASPX后台
虽然aspx现在用的越来越少,但是以前的一些项目仍旧是使用WebForm来实现的,我们仍然会遇到使用WebForm 并且实现AJAX的需求: 现在提供两种方法来实现aspx页面通过ajax调用aspx ...
- ajax调用asp.net,jQuery.ajax()调用asp.net后台方法(非常重要)
http://www.cnblogs.com/zxhoo/archive/2011/01/30/1947752.html 用JQuery的$.ajax()可以很方便的调用asp.net的后台方法. 先 ...
- 使用jquery ajax调用后台方法 有时候不调用回调函数
今天在编辑修改页面时遇到了一个很尴尬的问题,浪费了好多时间,问题描述: 使用jquery ajax调用后台方法,正确时弹出提示框,并且跳转到list列表页面.然而,写好了之后有时候会不跳转,直接刷新一 ...
最新文章
- 浅显易懂 Makefile 入门 (07)— 其它函数(foreach 、if、call、origin )
- mac玩rust用什么画质_玩七日杀Steam游戏用什么加速器?电狐加速器
- 解除织梦dedeCMS标题/关键词/ 简略标题长度限制听语音
- 简化PHP开发的10个工具
- 第一个SpringMVC入门程序
- JAVA和遮掩_JAVA 你不知道的秘密 覆写,重载,隐藏,遮蔽,遮掩
- 大学计算机基础知识判断题,大学计算机基础学习知识判断题.doc
- java中对象类型转换_Java中的对象的类型转换介绍(附代码)
- AndroidStudio安卓原生开发_Intent传过来的值会自动变化_太奇怪了_你碰见过嘛_Http并发引起的问题?_可通过静态变量传值的方式解决---Android原生开发工作笔记130
- JavaScript异常处理
- linux 命令行删除分区,如何在 Linux 中删除分区
- 什么叫百度下拉框?除了百度下拉还有哪些下拉词框可以优化?
- 在Eclipse中配置DOS(cmd)窗口
- 98五笔86五笔及五笔字型口诀字根表
- 【MATLAB】机器学习:线性判别分析LDA
- 火车头文章标题伪原创插件(文章双标题插件)
- 完全查杀VIKING(威金蠕虫)病毒与免疫补丁
- 记录一下自己用STM32完整开发一台双模机械键盘的过程(附代码和原理图)
- 力扣刷题 DAY_72 回溯
- 谭铁牛院士谈人工智能发展新动态
热门文章
- 虚幻UE4的后处理特效介绍
- [unreal4入门系列之十一] 在UE4中编写C++代码控制角色
- 英伟达新核弹GPU:4nm制程800亿晶体管,20张即可承载全球互联网流量,全新Hopper架构太炸了...
- 体验首款Linux消费级平板,原来芯片和系统全是国产
- 全球首个塑料ARM芯片登上Nature,成本仅同类硅芯片1/10
- 她琴棋书画全能,还进入清华计算机系实验室,被赞智商太超群、能力过强悍...
- 今年央视春晚的创意担当,给了这个1岁的拓荒牛机器人
- 搭载M1芯片的MacBook能不能当开发主力机?程序员半个月的亲身体验都在这里
- 波士顿动力CEO:不排斥军方订单,就想你粗暴地对待机器狗
- Hibernate学习第一天