2011-06-01 58 views
0

我使用jQuery調用頁面方法,它工作得很好。我正在創建第二個,它根本不工作;我得到的只是錯誤功能。是否可以在一個aspx頁面中放置多個頁面的方法?在aspx頁面上使用2頁方法

這是我在客戶端上的jQuery:

function LoadCount() { 

    var TheObject = $.toJSON(CurrentForm); 
    var TheParameter = "{'TheParameter' : '" + TheObject + "'}"; 

    $('#testobj').html("loading"); 

    $.ajax({ 
     type: "POST", 
     url: "../Pages/MyPage.aspx/GetCount", 
     data: TheParameter, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: successFn, 
     error: errorFn 
    }); 

}; 

function successFn(thedata) { $('#result').html(thedata.d); }; 
function errorFn() { alert("problem getting count"); }; 

function LoadData() { 

    var ConfirmLoad = "test"; 

    $.ajax({ 
     type: "POST", 
     url: "../Pages/MyPage.aspx/GetLoaded", 
     data: ConfirmLoad, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: successLoad, 
     error: errorLoad 
    }); 

}; 

function successLoad(thedata) { alert((thedata.d)); }; 
function errorLoad() { alert("problem getting loaded"); }; 

而在服務器端,我有這樣的:

[WebMethod] 
public static string GetCount(string TheParameter) 
{ 
    // some code 
    return JsonResult; 
} 

[WebMethod] 
public static string GetLoaded(string ConfirmLoad) 
{ 
    return "test string"; 
} 

LoadCount和getCount將工作的偉大,我想我會複製實施創建另一個頁面方法,但第二次,沒有好事發生。感謝您的建議。

+3

如果這就是你要求的,可以在aspx.cs | vb文件中定義多個方法。包含一些你已經完成的事情,你期望發生的事情,以及實際發生的事情的代碼片段會很有幫助。 – 2011-06-01 16:23:29

+0

@Pete,只是添加了代碼示例。 – frenchie 2011-06-01 16:31:04

+0

首先,我需要找到一種方法在我的代碼中使用名爲GetLoaded()的函數。其次,代碼示例很好,但仍然很難爲您提供幫助,而無需詳細瞭解按什麼順序發生的事情。至少請包括您收到的詳細例外情況。你有沒有試過在你的函數上設置斷點,看看它們是否被調用? – 2011-06-01 16:35:01

回答

0

如果您只是返回純文本而不是JSON編碼的字符串,則需要在$.ajax()調用屬性中設置dataType: "text"

您還可能要離開contentType指定(在'application/x-www-form-urlencoded'默認值),如果your're 發送純文本,而不是JS對象。