我学习了有关使用ASP.NET Core MVC进行CRUD的教程,并且能够运行该项目.它列出、添加、编辑和删除SQL Server数据库中的表中的员工.然后,为了提高我的技能,我决定将Telefono(电话号码)对象的变量列表添加到Empleado(Employee)" struct "中,这些对象存储在数据库的另一个表中,并通过idEmpleado FK链接到它自己的Empleado对象.因此,每个Empleado可以链接到0、1或更多的Telefono对象.该项目的后端都非常完美.我的问题来自于JavaScript代码.下面我展示了读取HttpGet请求(来自数据库的员工列表)的函数,我添加了一个函数来读取每个Empleado的Telefono的变量列表(我已经判断了C#方法执行得很好),以便将电话号码添加到员工列表的单元格中的(下拉列表),但该函数总是返回一个空数组对象.我在那里读到,您只能调用响应.json()一次,但是即使我从我的函数中的另一个函数调用它?不管是什么,谁能告诉我怎么解决这个问题? 请不要将我的问题标记为糟糕或错误或任何其他.以前有人这样做过,我被这个网站威胁说不能再问了.我只是一名SSR桌面应用程序和视频游戏开发人员,我想学习网络开发,我会尽我所能提出我的问题.如果这个问题有什么不清楚的地方,请告诉我,我会尽量澄清的. 非常感谢!
// loads Employee list and builds the list in the front end
function MostrarEmpleados() {
var telefonos = [];
var className, i = 0;
fetch("/Home/listaEmpleados")
.then(response => {
return response.ok ? response.json() : Promise.reject(response)
})
.then(responseJson => {
if (responseJson.length > 0) {
$("#tablaEmpleados tbody").html("");
i = 0;
responseJson.forEach((empleado) => {
className = "telefonos" + i;
$("#tablaEmpleados tbody").append(
$("<tr>").append(
$("<td>").text(empleado.nombreCompleto),
$("<td>").addClass(className),
$("<td>").text(empleado.refDepartamento.nombre),
$("<td>").text(empleado.sueldo),
$("<td>").text(empleado.fechaContrato),
$("<td>").append(
$("<button>").addClass("btn btn-primary btn-sm boton-editar-empleado").text("Editar").data("dataEmpleado",empleado),
$("<button>").addClass("btn btn-danger btn-sm ms-2 boton-eliminar-empleado").text("Eliminar").data("dataEmpleado",empleado),
)
)
)
telefonos = ObtenerTelefonos(empleado.idEmpleado); // always returns empty array
$("." + className).append(
$("<select>").addClass("listaTels")
);
telefonos.forEach((telefono) => {
$(".listaTels").append(
$("<option>").text(telefono.descripcion + ": " + telefono.numero)
)
})
i++;
})
}
})
}
下面我展示了从特定Empleado获取Telefono变量列表的函数.总是返回空array.
function ObtenerTelefonos(id) {
var telefonos = [];
fetch(`/Telefono/listaTelefonos?idEmpleado=${id}`)
.then(response => {
return response.ok ? response.json() : Promise.reject(response)
})
.then(responseJson => {
if (responseJson.length > 0) {
responseJson.forEach((telefono) => {
telefonos.push({
idTelefono: telefono.idTelefono,
descripcion: telefono.descripcion,
numero: telefono.numero,
idEmpleado: telefono.idEmpleado
});
})
}
})
return telefonos;
}