JQuery Ajax发布到C#

我正在尝试在C#上检索JSON对象这里是我的JavasSciprtpost但是我无法在代码隐藏上进行处理,谢谢!

$.ajax({ type: "POST", url: "facebook/addfriends.aspx", data: { "data": response.data }, contentType: "application/json; charset=utf-8", dataType: "json", success: function (msg) { location = '/facebook/login?URL=' + ReturnURL + '&UID=' + response.authResponse.userID + '&TK=' + response.authResponse.accessToken + ''; } }); 

我试图检索如下数据:

 Request.Form["data"] Request["data"] 

这是Encosia.com的一个例子(我添加了一个表单参数)。 您不需要访问Page.Form – 您可以使用方法参数。

代码隐藏

 public partial class _Default : Page { [WebMethod] public static string GetDate(string someParameter) { return DateTime.Now.ToString(); } } 

使用Javascript

 $(document).ready(function() { // Add the page method call as an onclick handler for the div. $("#Result").click(function() { $.ajax({ type: "POST", url: "Default.aspx/GetDate", data: {someParameter: "some value"}, contentType: "application/json; charset=utf-8", dataType: "json", success: function(msg) { // Replace the div's content with the page method's return. $("#Result").text(msg.d); } }); }); }); 

这就是我做的,它对我有用:

 $.ajax({ type: "POST", url: "facebook/addfriends.aspx", data: "data=" + response.data + "&data1=anyothervaluelikethis", contentType: "application/x-www-form-urlencoded", dataType: "json", success: function (msg) { location = '/facebook/login?URL=' + ReturnURL + '&UID=' + response.authResponse.userID + '&TK=' + response.authResponse.accessToken + ''; } }); 

这两行被修改

  data: "data=" + response.data + "&data1=anyothervaluelikethis", contentType: "application/x-www-form-urlencoded", 

代码隐藏C#方法签名应该类似于:

 [WebInvoke(UriTemplate = "MyMethod", Method = "POST", ResponseFormat = WebMessageFormat.Json)] public Object MyMethod(Object data){ // your code } 

其中Object可以是任何可序列化的类