簡體   English   中英

無法使用jQuery ajax調用Page Method

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM