2011-10-12 72 views
0

我需要将JavaScript数组变量传递给代码隐藏文件并访问该数组。将数组从jquery ajax方法传递到c#代码隐藏

请让我知道这是否是Ajax方法期望的确切数据对象。在使用这个时,代码总是跳转到failureCallback函数。任何人都可以帮助我吗?

的jQuery/JavaScript的:

result数组中的数据是:section_1,section_2,section_3

paramList的输出为:{"data":"section_1,section_2,section_3"}

function generateData() { 
    var result = $('#accordion').sortable('toArray'); 
    alert(result); 

    ExecutePageMethod("ReorderList.aspx", "HandleData", ["data", result], successCallback, failureCallback); 
} 

function ExecutePageMethod(page, fn, paramArray, successFn, errorFn) { 
    alert("entered page method"); 
    var paramList = ''; 

    if (paramArray.length > 0) { 

     for (var i = 0; i < paramArray.length; i += 2) { 
      if (paramList.length > 0) paramList += ','; 
      paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1] + '"'; 
     } 
    } 

    paramList = '{' + paramList + '}'; 

    alert(paramList); 

    $.ajax({ 
     type: "POST", 
     url: page + "/" + fn, 
     contentType: "application/json; charset=utf-8", 
     data: paramList, 
     dataType: "json", 
     success: successFn, 
     error: errorFn 
    }); 
} 

function successCallback(result) {  
    var parsedResult = jQuery.parseJSON(result.d); 
} 

function failureCallback(result) { 
    alert("entered failure"); 
} 

C#代码背后:

public static string HandleData(object[] data) 
{ 
    //How should I parse this object data? 
    return data; 
} 

回答

1

有从客户端访问后面的代码两种方式。

  1. 将它存储在与请求一起发送的集合中(通常这是通过表单提交)。
  2. 通过JavaScript设置对服务器端服务的“AJAX”调用。

上面有几个变种,但基本上你正在消费一项服务,或者你正在回发。

看着你的代码,你需要AJAX的方向。我将从this Stack Overflow post开始,因为它涵盖了将数组传递回代码隐藏的“服务端点”的基础知识。

+0

你能告诉我如何将它存储在一个集合中,并发送一个请求? – Krishh

相关问题