[英]Unable to call Page Method using jQuery ajax
我已經使用jQueryUI創建了一個可排序的ListView,但是現在我一直試圖將其保存回數據庫。 這是我創建ListView的方法:
<asp:ListView ID="ListViewItems" runat="server">
<LayoutTemplate>
<div id="sortable1" class="connectedSortable">
<asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
</div>
</LayoutTemplate>
<ItemTemplate>
<li class="ui-state-default" id='id_<%# Eval("Item_ID") %>'><%# Eval("Item_Name") %></li>
</ItemTemplate>
ListView下有一個按鈕(div),單擊該按鈕后應將重新排序的列表保存回db:
<div class="btn-info" id="UpdateOrder" onclick="SendUpdatedOrder()">Update Order</div>
JS文件內容:
function SendUpdatedOrder() {
var order = $('#sortable1').sortable('toArray').join(',').replace(/id_/gi, '');
//alert(order);
$.ajax({
type: "POST",
url: "~/AdminEditItems.aspx/UpdateRuleOrder",
data: '{}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});}
我已經在AdminEditItems.aspx.cs中創建了一個頁面方法-
[WebMethod]
public static void UpdateRuleOrder(string order)
{
....do something...
}
執行后,根本不會調用UpdateRuleOrder方法。 我在JS的UpdateRuleOrder函數中放置的任何警報都已成功調用,但是ajax方法不起作用。 我無法找出我要去哪里。
三件事:
從網址中刪除波浪號和正斜線,即
url: "AdminEditItems.aspx/UpdateRuleOrder",
在數據中添加參數
data: '{ "order" : "' + order + '"}',
您還需要在ScriptManager
EnablePageMethods
,即
<asp:ScriptManager runat="server" EnablePageMethods="true">
更新
我還注意到您沒有返回任何東西,更改UpdateRuleOrder
方法以返回您的對象,您將可以像這樣訪問它:
var myObject = response.d;
由於它位於該URL上方的目錄中,因此:
url: "../AdminEditItems.aspx/UpdateRuleOrder",
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.