1、WebMethod
public static方法,ajax/PageMethods调用。
[WebMethod] public static string GetUserName() { //...... } 需要访问操作session时 [WebMethod(EnableSession = true)]//或[WebMethod(true)] public static string GetUserName() { //...... }
PageMethods.GetUserName
$.ajax({ type: "POST",contentType: "application/json",url: "WebForm2.aspx/GetUserName",data: "{}",dataType: "json",success: function(){.......} });
参数说明。
type:请求的类型,这里必须用post。(WebMethod方法只接受post类型的请求)
contentType:发送信息至服务器时内容编码类型,这里一定要用application/json 。
url:请求的服务器端处理程序的路径,格式为"文件名(含后缀)/方法名"
data:参数列表。
注意,这里的参数一定要是json格式的字符串,记住是字符串格式,如:"{aa:11,bb:22,cc:33,...}";
如果你写的不是字符串,那jquery会把它实序列化成字符串,那么在服务器端接受到的就不是json格式了;
不能为空,即使没有参数也要写成"{}",如上例。很多人不成功,原因就在这里。
dataType:服务器返回的数据类型。必须是json,其他的都无效。因为webservice 是一json格式返回数据的,其形式为:{"d":"......."}。
success:请求成功后的回调函数。你可以在这里对返回的数据做任意处理。
上面ajax的简单封装,jquery.extend.js
/// <summary> /// jQuery原型扩展,重新封装Ajax请求WebServeice /// </summary> /// <param name="url" type="String"> /// 处理请求的地址 /// </param> /// <param name="dataMap" type="String"> /// 参数,json格式的字符串 /// </param> /// <param name="fnSuccess" type="function"> /// 请求成功后的回调函数 /// </param> $.ajaxWebService = function(url,dataMap,fnSuccess) { $.ajax({ type: "POST",url: url,data: dataMap,success: fnSuccess }); }
请求方法
$.ajaxWebService("WebForm2.aspx/GetUserName","{}",function(result) {......});
2、一般处理程序(*.ashx)
处理速度比aspx快,是专为ajax服务。
接受参数用context.Request[" "];
编写多个方法使用Switch语句;
返回值用context.Response.Write( );
DefaultHandler.ashx?method=getlist
后台CS
using System; using System.Web; using System.Collections.Generic; using System.Web.Script.Serialization; public class DefaultHandler IHttpHandler { public void ProcessRequest (HttpContext context) { string response = string.Empty; string str = context.Request.QueryString["method"]; if (string.IsNullOrEmpty(str)) { context.Response.Write("error!"); return; } switch (str) { case "getlist" response = GetList(context); break; //下边还有可以接着写. } context.Response.Write(response); context.Response.End(); } public bool IsReusable { get { return false; } } public string GetList(HttpContext context) { //从数据库取得list数据: List<myEntity> data = DAL.GetData(); return ToJson(data.ToArray()); } //序列化对象为json数据 public string ToJson(object o) { JavaScriptSerializer j = new JavaScriptSerializer(); return j.Serialize(o); } }
3、web服务(*.asmx)
必须是json格式、跨浏览器、跨平台。
$(document).ready(function() { sshow(); }); function sshow() { var s = '<%=IsShow() %>'; if(s == '0') { document.getElementById("trr").style.display= "none"; }else { document.getElementById("trr").style.display= ""; } alert(s); }
public int IsShow() { int sis = 0; ASPxLabel urll = (ASPxLabel)DataList1.Items[0].FindControl("ASPxLabelURL"); //Response.Write(urll.Text.Length); //Response.Write(urll.Text.IndexOf(".",9,2).ToString()); if (urll.Text.Length > 12) { if (urll.Text.IndexOf(".",3) > -1) { sis = 1; } } return sis; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。