将数组JavaScript作为参数传递给控制器

时间:2019-05-29 20:28:32

标签: javascript c# asp.net

首先为我的英语不好而感到抱歉,我的问题是,我有一个控制器接收对象列表作为参数,但是当我尝试将此列表发送给控制器时,总是收到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) {

            }
        });

1 个答案:

答案 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