日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

aspx后台调用前台jquery_Jquery Ajax调用aspx页面方法

發布時間:2025/4/16 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 aspx后台调用前台jquery_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 stringSayHello()

{return "Hello Ajax!";

}

前臺頁面代碼:

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傳值是后臺取不到的問題

在WebMethod()方法中,是不能通過 HttpContext.Current.QueryString.Get("id")來獲取query string,

因為在WebMethod()默認是用POST方法提交的,而用GetQueryString是不能取到值的。

替代方法是用JS獲取url中的參數,用ajax提交給后臺方法是用:

< script type = "text/javascript" >

functiongetArgs(strParame) {var args = newObject();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

} < /script>

三、時間問題

WCF 或 模擬Web服務處理JSON時返回時間格式問題。解決方法如下://雜亂的時間

var rawDate = "/Date(1347120000000+0800)/";//提取時間字符串

var strDate = rawDate.substr(6, 13);//把時間字符串轉化成int類型

var intDate =parseInt(strDate);//構造一個Date對象

var newDate = newDate(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);

}

});

總結

以上是生活随笔為你收集整理的aspx后台调用前台jquery_Jquery Ajax调用aspx页面方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。