2011-02-15 31 views
4

在我的JavaScript,我有:asp.net頁面法jQuery和參數

var testdate = "{'TheNewDate' : '12/02/2011'}"; 

$("#mydiv").click(function() { 
    $.ajax({ 
     type: "POST", 
     url: "../Pages/Appointments.aspx/GetAppointements", 
     data: testdate, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
      success: successFn, 
     error: errorFn 

    }); 
}); 

在我後面的代碼我有

[WebMethod] 
public static string GetAppointements(string DateInput) 
{ 
    var t = DateInput; 

然而,當我點擊運行的號召,我獲取錯誤功能以激活。當我將函數後面的代碼更改爲公共靜態字符串GetAppointement()時,它可以工作。但我想我的目標是將參數傳遞給後面的代碼。我錯過了什麼?

謝謝。

回答

4

你的參數被稱爲DateInput而不是TheNewDate,所以:

$('#mydiv').click(function() { 
    $.ajax({ 
     type: 'POST', 
     url: '../Pages/Appointments.aspx/GetAppointements', 
     data: JSON.stringify({ dateInput: '12/02/2011' }), 
     contentType: 'application/json; charset=utf-8', 
     dataType: 'json', 
     success: successFn, 
     error: errorFn 
    }); 
}); 
+0

謝謝,它太簡單了!但它可能需要一段時間才能找出你自己的....非常感謝。 – frenchie

+0

@frenchie,也注意到'JSON.stringify'的用法,而不是硬編碼的字符串,它們將不會被正確編碼。 –

+0

快速提問:我在頁面代碼中聲明的變量在頁面方法中不可用;這是正常的嗎? – frenchie

2

你應該讓你的JSON數據的Web服務方法的參數名稱相匹配。

var testdate = "{'DateInput' : '12/02/2011'}";