2011-02-15 30 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'}";