#c# #json #model-view-controller #datatables #.net-core
#c# #json #модель-представление-контроллер #таблицы данных #.net-core
Вопрос:
Я разрабатываю свое приложение DataTables с помощью .NET. При попытке запустить мое приложение я получаю это сообщение об ошибке:
Предупреждение о таблицах данных: идентификатор таблицы =tbl_NameValue — Запрошен неизвестный параметр ‘Name’ для строки 0, столбца 0. Для получения дополнительной информации об этой ошибке, пожалуйста, смотритеhttp://datatables.net/tn/4
Мой HTML:
<div class="row container">
<table id="tbl_NameValue" class="display" style="direction:rtl;">
<thead>
<tr>
<th>Name</th>
<th>Value </th>
<th>GroupName </th>
</tr>
</thead>
</table>
</div>
Мой JavaScript:
$(document).ready(function () {
$('#tbl_NameValue').DataTable({
"ajax": {
"url": "/BaseInfo/NameValueSelectAll",
"type": "GET",
"datatype": "json"
},
"columns":
[{
data: 'Name'
}, {
data: 'Value'
}, {
data: 'GroupName'
}
],
"language": {
"url": "//cdn.datatables.net/plug-ins/1.10.19/i18n/Persian.json"
}
});
});
Мой C#:
public IActionResult NameValueSelectAll() {
List < NameValueModel > resu<
using(NameValueDA dataAccess = new NameValueDA()) {
var dt = dataAccess.SelectAll();
result = this.NameValueGetList(dt);
}
string tmp = JsonConvert.SerializeObject(result);
return Json(new {
data = tmp
});
}
public List < NameValueModel > NameValueGetList(DataTable datatable) {
List < NameValueModel > result = new List < NameValueModel > ();
result = (from DataRow dr in datatable.Rows
select new NameValueModel() {
Name = Convert.ToString(dr["NMVL_Name"]),
Value = Convert.ToInt32(dr["NMVL_Value"]),
GroupName = Convert.ToString(dr["NMVL_GroupName"])
}).ToList();
return resu<
}
Комментарии:
1. Если ваш сервер возвращает массив записей, которые соответствуют вашим строкам, вам необходимо указать
ajax.dataSrc: ''
опцию.2. я добавил свою серверную структуру, я ускорил, пожалуйста, дополнительную информацию, как я должен использовать эту опцию?
3. Мне кажется, это сбивает с толку: если вы возвращаетесь к AJAX-вызову строки,
{data = ...}
которая, похоже, не является допустимой JSON — вы должны использовать:
вместо=
. Если это просто недоразумение с моей стороны, и ваш JSON на самом деле является чем-то вроде[{"Name":"somename", "Value":"somevalue",...},{...}]
, вам нужно установитьajax:{dataSrc:'',...}
в вашем разделе инициализации datatable ($('#tbl_NameValue').DataTable({...})
).4. на данный момент я кодирую эту строку:
string strmsg = "[{"Name":1,"Value":"suresh","GroupName":"chennai"}]"; var test = Json(strmsg);
и добавляю это к своим параметрам: «dataSrc»: «» но проблема еще не решена5. Вы можете очистить
<table></table>
внутренний HTML, чтобы он оставался простым<table id="tbl_NameValue" class="display" style="direction:rtl;"></table>
. Теперь ошибка изменилась или она остается такой же?