我正在使用 ASP.NET Core 开发一个项目。在这个项目中,我想使用 SignalR 库检索数据,但数据到达表时为“未定义”。
我正在使用 PostgreSQL 和 N 层架构。
tasklisthub.js 侧代码;
"use strict";
var connection = new signalR.HubConnectionBuilder().withUrl("/taskListHub").build();
$(function () {
connection.start().then(function () {
alert('Connected to SignalR');
InvokeTaskList();
}).catch(function (error) {
return console.error(error.toString());
});
});
function InvokeTaskList() {
connection.invoke("SendTaskList").catch(function (error) {
return console.error(error.toString());
})
}
connection.on("ReceivedTaskList", function (taskList) {
GetTaskList(taskList);
});
function GetTaskList(taskList) {
$('#getTaskList tbody').empty();
var tablerow;
$.each(taskList, function (index, value) {
tablerow = $('<tr/>');
tablerow.append(`<td>${value.CreateUser}</td>`);
tablerow.append(`<td>${value.TaskTitle}</td>`);
tablerow.append(`<td>${value.Priority}</td>`);
tablerow.append(`<td>${value.CreateDate}</td>`);
tablerow.append(`<td>${value.Status}</td>`);
$('#getTaskList').append(tablerow);
});
}
TaskListHub.cs 边代码;
public class TaskListHub : Hub
{
TaskListManager taskListManager = new TaskListManager(new EFTaskListDataAccessLayer());
public TaskListHub(IConfiguration configuration)
{
var connectionString = configuration.GetConnectionString("DefaultConnection");
}
public async Task SendTaskList()
{
var taskList = taskListManager.itemGetList();
await Clients.All.SendAsync("ReceivedTaskList", taskList);
}
}
appsettings.json 边代码;
"ConnectionStrings": {
"DefaultConnection": "User ID=postgres;Password=ada;Host=localhost;Port=5432;Database=pmts;Pooling=true;"
}
非常有趣,列标题是“TaskTitle”,但在控制台中显示为“taskTitle”。当我输入
${value.taskTitle}
时,数据就来了。
这个答案是作为问题的评论发布的数据在使用SignalR时未定义[已解决]由OPGökmen Ada在CC BY-SA 4.0下。