博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jquery ajax调用后台aspx后台文件方法(不是ashx)
阅读量:6069 次
发布时间:2019-06-20

本文共 2619 字,大约阅读时间需要 8 分钟。

在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下。

  (1)通过aspx.cs的静态方法+WebMethod进行处理

   简单的介绍下WebMethod方法的用法

   1.修饰符主要用public static修饰

   2.方法前面加上[WebMethod]属性表明这是WebMethod方法

   3.前台html页面(Client端)访问时要使用post方法,和后台.cs文件进行数据交互,否则会返回整个html页面。

   4.当后台页面返回数据后,前台html页面需要用data.d接收返回的json字符串。

   5.访问url:http://abc.com/abc.aspx/ajax方法

   aspx.cs代码:

using System.Web.Services; [WebMethod]public static string SayHello(){    return "Hello Ajax!";}

   前台jquery代码:

$(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);                 }             });    });     });
 

 

 html代码:

 (2)通过一般处理程序ashx进行处理;

   Jquery代码:

$.ajax({             type: "POST",             url: "S_CBFBM.ashx",             data: { ZBM: p_zdm },             beforeSend: function() {              //$("#div_load").visible = "true;             },             success: function(msg) {             //$("#div_load").visible = false;             $("#ds").html("

" + msg + "

"); $("#CBFBM").val(msg); } });

  ashx.cs代码:

<%@ WebHandler Language="C#" Class="AjaxHandler" %>      using System;      using System.Web;            public class AjaxHandler : IHttpHandler {          public void ProcessRequest (HttpContext context) {              context.Response.ContentType = "text/plain";              if (context.Request["name"].ToString() == "admin" &&                  context.Request["pass"].ToString() == "admin")              {                  context.Response.Write("Y");              }              else              {                  context.Response.Write("N");              }           }                 public bool IsReusable {              get {                  return false;              }          }      }

 

  (3)注意:当要返回一个泛型数组,枚举等不是字符串的时候需要对返回的内容进行JSON序列化,序列化代码如下:

      

JavaScriptSerializer jsonUtil = new JavaScriptSerializer();  string json = jsonUtil.Serialize(需要返回的对象);

   (4)序列完后前台html页面接收需要用each遍历时,因为in对字符串不管用,所以要对传过来的字符串进行Json化,代码如下

$.get(url,function(data){                  obj= $.parseJSON(data);    //Json化之后可以用each遍历                $.each(obj, function(k,v) {                      alert(v.id);                  });         });

 

转载于:https://www.cnblogs.com/GreenLeaves/p/5624044.html

你可能感兴趣的文章
Windows Azure 保留已存在的虚拟网络外网IP(云服务)
查看>>
修改字符集
查看>>
HackTheGame 攻略 - 第四关
查看>>
js删除数组元素
查看>>
带空格文件名的处理(find xargs grep ..etc)
查看>>
华为Access、Hybrid和Trunk的区别和设置
查看>>
centos使用docker下安装mysql并配置、nginx
查看>>
关于HTML5的理解
查看>>
需要学的东西
查看>>
Internet Message Access Protocol --- IMAP协议
查看>>
Linux 获取文件夹下的所有文件
查看>>
对 Sea.js 进行配置(一) seajs.config
查看>>
dom4j解析xml文件
查看>>
第六周
查看>>
斯坦福大学公开课机器学习:梯度下降运算的学习率a(gradient descent in practice 2:learning rate alpha)...
查看>>
解释一下 P/NP/NP-Complete/NP-Hard 等问题
查看>>
javafx for android or ios ?
查看>>
微软职位内部推荐-Senior Software Engineer II-Sharepoint
查看>>
sql 字符串操作
查看>>
【转】Android布局优化之ViewStub
查看>>