请教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数组字符串