我有以下代码将DATA发送到控制器操作并返回纯HTML 我在控制器操作中得到空对象。
var employees = [
{ Title: "John", DataType: 1 },
{ Title: "Anna", DataType: 2 },
{ Title: "Peter", DataType: 3 }
];
$("#btn-continueedit").click(function () {
$.ajax({
type: 'POST', // I tried post also here
cache: false,
url:'/user/UserinfoWizard',
data: { values: employees },
success: function (data) {
$("#editUserInfo").html(data);
}
});
return false;
});
这是我的控制器动作
[HttpPost]
public ActionResult UserInfoWizard(List<UserInfoEditDetail> values)
{
// I get empty object 'values' here :(
}
答案 0 :(得分:2)
使用ajax调用传递的数据应该是包含要在控制器操作中使用的参数的对象。您的操作需要随数据传递values
参数,因此您的数据对象应为data: { values: getSelectedAttributes() }
JavaScript的:
$("#btn-continueedit").click(function () {
$.ajax({
type: 'POST',
//..
data: { values: getSelectedAttributes() }, //Use the data object with values
//..
});
return false;
});
C#:
[HttpPost]
public ActionResult UserInfoWizard(object values) // parameter name should match the name passed in data object
{
//..
}
修改强>
实际上,您的操作需要一个对象,而您的值是一个数组。我不知道这些值是什么,但在您的操作中,您应该将int[] values
或string[] values
作为参数或您期望的任何其他数组类型。
答案 1 :(得分:0)
$("#btn-continueedit").click(function () {
$.ajax({
type: 'GET', // I tried post also here
cache: false,
dataType:JSON,
url:'/user/UserinfoWizard',
data: JSON.stringify({ data:getSelectedAttributes()}),
success: function (data) {
$("#editUserInfo").html(data);
}
});
return false;
});
<强>更新强>
在ajax调用期间传递数据时,它应该是对象的形式,而不是数组