0

次のようなサーバー側のデータソースを使用するデータテーブルがあります。

    $('.taskTable').dataTable({
       "bServerSide": true,
       "bProcessing": false,
       "fnServerData": function (sSource, aoData, fnCallback) {
          ...
          aoData.push({ "name": "groupIDs", "value": $("#groupIDs").val() });
          ...
          $.ajax({
             'dataType': 'json',
             'type': 'post',
             'url': "@Url.Action(MVC.Tasks.Tasks.DataTable())",
             'data': aoData
          });
      }
   });

問題は、$("#groupIDs").val()値をフォーマットしないため、モデル(.NET MVC3)にバインドされることです。.NETは次のようなものを見たいと思っていますgroupIDs[0]=23&groupIDs[1]=42&...が、代わりに.NETとして送信していgroupIDs=[23,42,...]ます。データテーブルを取得して正しい形式で送信するにはどうすればよいですか?

4

2 に答える 2

3

理解した。データテーブルを取得して希望どおりに自動フォーマットするのに苦労するのではなく、値を個別のパラメーターとして手動で入力することにしました。

"fnServerData": function (sSource, aoData, fnCallback) {
   var groupIDs = $("#groupIDs").val()
   if (groupIDs != null) {
      for (x = 0; x < groupIDs.length; x++) {
         aoData.push({ "name": "groupIDs[" + x + "]", "value": groupIDs[x] });
      }
   }
   ... // more code
}

よく働く。これが他の誰かに役立つことを願っています。

于 2012-08-06T17:58:41.653 に答える
0

グループ23、42、....は配列に相当しますが、.netについてはよくわかりませんが、PHPと同じように、バックエンドに相当するforeachがあります。この配列をループして、他の方法でやりたいように処理します。

この場合groupdIDs=[23,42]、バックエンドでの例は次のようになります

(これはPHPであることに注意してください。.netではないことをお詫びします)

foreach($_POST['groupIDs'] as $groupid)
{
   echo $groupid."<br>";
} 

また

for($i=0;$i < count($_POST['groupIDs']);$i++)
{
    echo $_POST['groupIDs'][$i]."<br>";
}

また

echo $_POST['groupIDs'][0]."<br>";
echo $_POST['groupIDs'][1]."<br>";
于 2012-08-06T17:37:58.287 に答える