我使用代码将一些参数发送到ASP.NET方法:
$.ajax({
url: "/default.aspx/test.test",
type: "POST",
data: "{'parameter':'kapdbe'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
alert(result.d);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Error");
}
});
然后我如何获取从HttpContext.Request发送的数据? 提前谢谢。
答案 0 :(得分:4)
您需要使用Request.InputStream
将StreamReader
中的原始数据读入字符串,然后从字符串中解析JSON。
如果您正在使用页面方法,则只需修改页面方法即可将[Serializable]
类作为参数,其属性与传入的JSON匹配。
答案 1 :(得分:2)
你写了
url: "/default.aspx/test.test"
那么,我猜错了 ASP.NET WebForms 吗?
将此信息放在问号标签中总是很好,因此我们可以帮助您更好,更快地
所以,你应该这样做:
url: "/json/test.ashx"
创建 Generic Handler (因此,您不需要处理所有ASP.NET页面生命周期,而且速度会快得多)
代码如下:
<%@ WebHandler Language="C#" Class="Handler" %>
using System.Web;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
// Get your variable
string param = context.Request["parameter"];
// Do something with it
MyObject output = DoSomethingWithPAram(param);
// Use Json.NET to get a nice JSON string
string json = Newtonsoft.Json.JsonConvert.SerializeObject(output);
// Output new stuff
context.Response.ContentType = "text/plain";
context.Response.Write(json);
}
public bool IsReusable {
get {
return false;
}
}
}
希望它有所帮助......如果它 ASP.NET MVC 2/3 它会更容易一些:)