ASP.NET MVC 3 Webサイトがあります。特定のページで、テーブルにdatatables.netプラグインを使用しました。表の左側にあるチェックボックスをマークアップに含めました。クリックすると行が強調表示されます。ユーザーは複数の行を選択できます。ユーザーがボタンをクリックすると、クリックされたすべての行のIDをコントローラーに渡して、DBで作業を行います。
コントローラ内のデータを簡単に逆シリアル化できるように、IDをJSON形式で返したいです。
これまでのところ、これは私も持っています。
$('#UseCars').click(function (event) {
var cars = new Array();
carsTable.find("tr input:checkbox").each(function () {
var car = new Object();
//alert($(this).attr("CarID"));
car.ID = $(this).attr("CarID");
//alert(car.ID);
cars.push(car);
});
var jsonstring = $.toJSON(cars);
$('#CarsList').val(jsonstring);
});
したがって、私のcshtmlには、モデルの文字列であるCarsListの非表示があります。UseCarsボタンが呼び出すコントローラーのメソッドにブレークポイントを設定すると、model.CarsListの値が表示されます。CarsListはjstrong文字列ですが、テーブル内のすべてのチェックボックスが検出され、特定のチェックボックスは検出されず、プルされません。行のID値も出力されます。
私がここで見逃しているものを誰かが見ることができますか?
CSHTMLマークアップを含めるように編集
これが、テーブルのページにあるマークアップです。
<table id="carsTable" style="margin-left: 2px; width: 200px">
<thead>
<tr>
<th class="ui-widget-header">
<input id="SelectAll" type="checkbox" />
</th>
<th class="ui-widget-header table-header">
</th>
<th class="ui-widget-header table-header">
Age of Car (Years)
</th>
<th class="ui-widget-header table-header">
Car Name
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.CarList)
{
<tr>
<td class="table-data">
<input id="SelectIndividual" name="Select" type="checkbox" />
</td>
<td id="InvoiceId">
@Html.DisplayFor(modelItem => item.CarID)
</td>
<td class="table-data">
@Html.DisplayFor(modelItem => item.CarAge)
</td>
<td class="table-data">
@Html.DisplayFor(modelItem => item.CarName)
</td>
</tr>
}
</tbody>
</table>
次に、DataTableテーブル構成のページのjsファイルで、ID列がbvisible:falseに設定されているため、実際にはユーザーに表示されません。Danielが述べたようにidselectを変更したので、次のようになります--car.ID = $(this).next( "CarId");
コントローラのブレークポイントで、情報が返されることがわかりますが、期待したものとは異なります。つまり、文字列が[{123}、{124}]のようになることを期待していましたが、代わりに次のような出力が得られます。
"[{\"ID\":{\"length\":0,\"prevObject\":{\"0\":{\"jQuery183036556275907670765\":227},\"context\":{\"jQuery183036556275907670765\":227},\"length\":1},\"context\":{\"jQuery183036556275907670765\":227},\"selector\":\".next(CarId)\"}}]"