首先为我的英语不好而感到抱歉,我的问题是,我有一个控制器接收对象列表作为参数,但是当我尝试将此列表发送给控制器时,总是收到null。
public async Task<ActionResult> MyAction(List<class> object)
{
//do stuff
}
我的JavaScript
var array= []
array.push()...
document.location = '/MyAction/Controller?object'JSON.stringify(array)
my controller always receive null
i alreay尝试使用ajax,但是由于某种原因ajax两次调用了我的控制器,在第一次调用中我正确接收了我的列表,但是在第二次接收到空值
var array =[]
array.push()//just example
$.ajax({
type: 'POST',
tradicional:true,
async:true,
url: '/controller/MyAction',
data: JSON.stringify({ 'object': array}),
contentType: 'application/json; charset=utf-8',
datatype: 'json',
success: function (result) {
//if succes then load my View passing array as param
document.location = '/controller/MyAction?object' + JSON.stringify(array) ;
},
error: function (result) {
}
});
答案 0 :(得分:0)
我alreay尝试使用ajax,但是由于某种原因ajax呼叫了我的控制者 两次
我猜第一个电话是通过以下行完成的POST请求:
$.ajax({
type: 'POST',
第二个调用是通过以下行完成的GET请求:
//if succes then load my View passing array as param
document.location = '/controller/MyAction?object' + JSON.stringify(array) ;
在浏览器的调试器的“网络”选项卡中检查是否存在这种情况,确定要使用POST还是GET,并相应地配置控制器。该线程可能会有所帮助:asp mvc http get action with object as parameter