2017-05-01 19 views
0

私はstring []パラメータである変数を持っています。私は、actionresultで値をプッシュしようとしましたが、string []パラメータとまだ一致していません。だから私のAJAX:配列[1] 0: 'テスト'、 をし、それは私のコントローラに行く:文字列配列をactionresultに渡す方法

var panels = []; 
    $('input.checkone').each(function (e) { 
     if ($(this).is(':checked')) { 
      var inputCheck = $(this).closest('tr').find('td:nth-child(6) a').text(); 
      panels.push(inputCheck); 
     } 
    }); 
    var data = { panels: panels }; 
    $.ajax({ 
     url: "/main/sub", 
     data: data, 
    }).etc... 

だから、パネルは、パネルのように見えるように通過している現在のパネル

public ActionResult sub(string[] panels) 
{ 
//content 
} 

{文字列[1]}。なぜ私の文字列が正しく渡されず、その文字列が{string [1]のように渡されているのかわかりません。

+0

「text」の代わりに「innerHTML」を使用するのはどうですか? –

+0

これはjQueryで正常に終了したようですが、テキストを取得しますが、コントローラに渡すと{string [1]}に置き換えられます – Keith

+0

大丈夫 'var data = {'panels':panels}; ' –

答えて

0

このコードは、私の作品:

 var url = 'http://my-address/'; 
     var array = ["hello", "world"]; 
     $.post(url, $.param({ data: array }, true), function (result) { 
      $('#MyDiv').html(result);     
     }); 



public ActionResult sub(List<string> data) 
{ 
//content 
} 
0

あなたはjQueryの3.0以来、もはやデフォルトではありません伝統的な方法であなたのパラメーターをシリアル化するためのjQueryを指示する必要があります。

$.ajax({ 
    url: "/main/sub", 
    data: data, 
    traditional: true 
}) 
関連する問題