サーバーへのすべてのajax呼び出しの通常のデータと一緒に、JSON文字列形式でカスタムデータを送信する必要があります。
これが私のJavaScriptコードです。
$('#dataList').dataTable({
"bFilter": false,
"bSort": false,
"bAutoWidth": true,
"iDisplayLength": 20,
"sPaginationType": "full_numbers",
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "/ViewGenerator/GetPagedViewData",
"sServerMethod": "POST",
"fnServerParams": function (aoData) {
var name = $('#viewName').val();
var viewId = $('#viewId').val();
var description = $('#viewDescription').val();
var viewInfo = JSON.stringify(currentviewInfo);
aoData.push({ "name": "viewId", "value": viewId });
aoData.push({ "name": "viewName", "value": name });
aoData.push({ "name": "viewDescription", "value": description });
aoData.push({ "name": "viewInfo", "value": viewInfo });
},
"fnRender": function (oObj) {
for (var i = 0; i < oObj.length; i++) {
console.log(oObj[i]);
}
}
});
コントローラの署名は次のとおりです。
public JsonResult GetPagedViews(int? iDisplayStart = 0, int? iDisplayLength = 0, int? sEcho = 0, string viewId = null, string viewName = null, string viewDescription = null, viewInfo viewInfo = null)
{
Chromeデベロッパーツールでjsエラーを表示すると、不正なリクエスト(400)が行われていることがわかり、バグのあるコードの正確な場所を見つけることができません。また、データテーブルajax呼び出しごとにアプリケーションタイプをapplication/jsonに設定するにはどうすればよいですか。