我正在尝试做一些事但没有成功。 1.我想通过jquery做一个ajax调用并传递一个数组(我假设它应该在data属性上)。 2.然后,我想在服务器端检索这个数组,但我很失落。
任何人都可以解释一下如何轻松完成这项工作?我想过使用context.Request.Params,但我猜这不是正确的方法..
var array = [];
...
$.ajax({
cache: false,
method: 'json',
url: 'handler/myhandler.ashx',
data: array
答案 0 :(得分:2)
$.ajax({
type: 'POST',
cache: false,
method: 'json',
url: 'handler/myhandler.ashx',
data: array
你是对的,你的数组应该被插入到ajax调用的“data”属性中。
您可以通过处理程序中的HttpContext访问服务器端的数据。有一个名为request的属性。
为了将对象转换为对象,这是一个deserializsation示例。它被反序列化为字典的地方。
public void ProcessRequest(HttpContext context)
{
var data = context.Request;
var sr = new StreamReader(data.InputStream);
var stream = sr.ReadToEnd();
var javaScriptSerializer = new JavaScriptSerializer();
var arrayOfStrings = javaScriptSerializer.Deserialize<string[]>(stream);
答案 1 :(得分:0)
像这样使用JSON.stringify():
$.ajax({
cache: false,
method: 'json',
url: 'handler/myhandler.ashx',
data: JSON.stringify(array),
type: "POST"
将数据发送到服务器端后,您现在需要做的就是反序列化对象,这就是您的操作方法
//might be something else other than Forms["json"], use debug mode to figure out the param
string json = HttpContext.Current.Request.Forms["json"];
JavaScriptSerializer serializer= new JavaScriptSerializer();
var urObj = serializer.Deserialize<Type>(json);