日期:2014-05-18  浏览次数:20389 次

请教Jquery传数组参数到后台的问题
Jquery Code

 <script src="scripts/jquery-1.4.2.js" type="text/javascript"></script>
  <script type="text/javascript" charset="utf-8">
  $(function()
  {
  var arrar=["测试1","测试2"]
  json.name=arrar;
  $("#btn1").click(function()
  {
   
  $.ajax({
  type:"post",
  url:"WebForm2.aspx/GetDate",
  //data:json,
  data:'{"name":[""测试1",""测试2"]}',
  contentType:"application/json;charset=utf-8",
  dataType:"json",
  success:function(data)
  {
  alert(data.d);
  }
   
  });
  return false;
  });
  });
  </script>




cs Code


 public partial class WebForm2 : System.Web.UI.Page
  {
  protected void Page_Load(object sender, EventArgs e)
  {
   
   
  }

  [WebMethod]
  public static string GetDate(string[] name)
  {
  string str = "";
  foreach (string str1 in name)
  {
  str += str1 + " ";
  }
  return str;
  }
  }


请问下jquery.ajax传到后台的参数只能以字符串形式传送么(data:'{"name":[""测试1",""测试2"]}'),不能以 (data:json)这样子传到后台么,前者我试过可以调用后台的方法了,用后都就调用不到,请高手帮忙


------解决方案--------------------
see~

http://stackoverflow.com/questions/6773281/send-array-via-jquery-to-ajax-enabled-wcf/6773601#6773601

hope some help~·
------解决方案--------------------
json?

demo
------解决方案--------------------
可以啊
function createQueryString() {
var name = $("#txt_name").val();
var pass = $("#txt_pass").val();
var queryString = { name: name, pass: pass };
return queryString;
}
function doAjaxGET() {
$.ajax({
type: "GET",
url: "Default2.aspx",
data: createQueryString(),
success: function (data) { requestMessage.innerHTML = data; }
})
}

这是我的一个例子,看看对你有帮助没?
------解决方案--------------------
看看这个:


将用户对一个列表数据的操作同步在页面的一个JSON数组内,减少回传同时提高了用户体验。
首先从后台 传过来 {exArray:[{"id":1,"name":"god1"},{"id":2,"name":"god2"}]}
javascript对JSON数组十分简单,等同于数组。
难点:操作完成后需要对数组序列化成字符串,然后回传, 这里有 JSON2.js 里的JSON.stringify 方法实现了此功能。
后台将JSON数组反序列化成对象:
1.引用 System.Web.Extention.dll
2.自定义数据类
3. 
 private static readonly JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
 List<CustomClass> classList = jsSerializer.Deserialize<List<CustomClass>>(jsonFormatString); //jsonFormatString json数组字符串