Запрошенный неизвестный параметр ‘0’ из источника данных для строки ‘0’

#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<
}
  

Мой формат JSON

Комментарии:

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> . Теперь ошибка изменилась или она остается такой же?