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可以是任何可序列化的类