#javascript #jquery #asp.net-mvc #datatables
Вопрос:
У меня есть вызов ajax, который приносит данные для заполнения моей таблицы данных.
Мой код контроллера таков
[HttpGet]
public async Task<IActionResult> GetAll()
{
var list = Json(new { data = _db.Indicador.ToList() });
return Json(new { data = await _db.Indicador.ToListAsync() });
}
Я установил в списке var точку останова, чтобы просмотреть данные.
У меня также есть таблица индексов по умолчанию и добавленные таблицы данных.
В первом и втором столбцах есть данные, но таблицы данных мне их не показывают.
Для моего javascript у меня есть.
function loadDataTable() {
dataTable = $('#DT_load').DataTable({
"columnDefs": [{
"defaultContent": "-",
"targets": "_all"
}],
"ajax": {
"url": '/api/indicador',
"type": "GET",
"dataType": "json"
},
"columns": [
{ "data": "Nombre_Indicador", "width": "20%" },
{ "data": "Descripcion_Indicadores", "width": "20%" },
{ "data": "medida", "width": "20%" },
{ "data": "objetivo", "width": "20%" },
{ "data": "perfil", "width": "20%" },
{ "data": "ponderacion", "width": "20%" },
{ "data": "base", "width": "20%" },
{ "data": "meta", "width": "20%" },
{
"data": "id_indicador",
"render": function (data) {
return `<div class="text-center">
<a href="/Indicadores/Edit?id=${data}" class='btn btn-success text-white' style='cursor:pointer; width:70px;'>
Editar
</a>
amp;nbsp;
<a class='btn btn-danger text-white' style='cursor:pointer; width:70px;'
onclick=Delete('/api/indicador?id=' ${data})>
Eliminar
</a>
</div>`;
}, "width": "40%"
}
],
"language": {
"emptyTable": "no se encontraron datos"
},
"width": "100%"
})
}
Таким образом, кажется, что нет данных для 3 столбцов: Nombre_Indicador, Descripcion_Indicadores и id_indicador.
Я понятия не имею, что здесь происходит, так как эти данные поступают из базы данных.
Комментарии:
1. Вы проверили вкладку «Сеть», действительно ли эти значения поступают на клиент? Может ли это быть проблемой с корпусом? Все работающие столбцы на клиенте строчные, но на сервере все они начинаются с прописных букв. Попробуйте изменить значения столбцов «данные» на строчные.
2. @ferikeem я перешел на строчные буквы, но не повезло, также сеть показывает мне информацию внутри json и показывает следующее: {«данные»:[{«id_Indicador»:2,»обычай»:null,»nombre_Indicador»:»Вента де Каррос БМ»,»Описание_индикадорес»:»Индикадор де вентас»,»медида»:554,»объект»:564,»перфил»:»секретария»,»ponderacion»:10,»база»:8,»мета»:10}]} существует только одно нулевое значение, но мне не нужно показывать его в таблице данных
3. Не меняйте все на строчные буквы — только начальную букву. Более конкретно, убедитесь, что вы используете точные имена, как показано в сетевом инструменте браузера. Так, например, используйте
nombre_Indicador
. Но не используйтеNombre_Indicador
, илиnombre_indicador
. Имена, используемые таблицами данных, должны точно соответствовать тому, что содержится в необработанных данных JSON.4. @andrewjames Вот и все, я изменил имена, начальную букву на более низкую, теперь я могу видеть данные в базах данных.