我想将一个对象传递给控制器并检索控制器中的值。 我已定义如下:
Html代码:
var positionarray = [];
使用Javascript:
$("#button").live('click',function(){
positionarray.push({
id: sessionStorage.getItem('id'),
value: $("#input").val()
});
});
// on save button click
$.ajax({
type: "GET",
url:"/Bugs/Position",
data: {
array:positionarray
},
cache: false,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (json) {
}
});
但我无法检索控制器中的值。它变得无效。
答案 0 :(得分:3)
试试这个: - 你传递一个对象数组,所以你应该做HTTPPost而不是HttpGet(这将适用于原始类型的数组,比如int,strgin等列表)通过查询字符串发送它(记住查询的限制)串)。 尝试使用HTTPPost
$.ajax({
type: "POST",
url:"Home/Position",
data: JSON.stringify({
array: positionarray
}),
cache: false,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (json) {
}
[HTTPPost]
public void Position(YourClass[] array){...
答案 1 :(得分:0)
试试这个:
$.ajax({
type: "GET",
url:"/Bugs/Position",
data: 'array='+positionarray
cache: false,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (json) {
}
});
答案 2 :(得分:0)
试试这个:
您的ajax call
必须处于按钮点击功能,然后才会有效,
在您的代码中,ajax call
会在您点击之前运行,因此会传递 null
到控制器
$("#button").live('click',function(){
positionarray.push({
id: sessionStorage.getItem('id'),
value: $("#input").val()
});
// on save button click
// this code must run after `button click` and after pushing data in
// positionarray variable
$.ajax({
type: "GET",
url:"/Bugs/Position",
data: {
array:positionarray
},
cache: false,
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (json) {
}
});// here ajax function code ends
});// here button click function ends