2012-08-06 65 views
0

我有一个数据表,它使用一个服务器端数据源是这样的:jQuery和数据表:传递数组到服务器端数据源

$('.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&...的东西,但它将它发送为groupIDs=[23,42,...]。我怎样才能让数据表格以正确的格式发送?

回答

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 
} 

工程很好。希望这可以帮助别人。

0

组23,42 ....是相当于一个数组,现在我对.NET不太了解,但是我确定它就像PHP那样有一个for,而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>"; 
+0

这是客户端上的所有JavaScript,而不是服务器端。不过谢谢。 – mtmurdock 2012-08-06 18:00:23

相关问题