我想通过 signalR 获取员工总数
但我做不到
我在我的项目 asp core 上添加了 signalR
创建中心 > 仪表板Hub
///////////////////////////////
创建dasjboard.js
////////////////
创建index.cshtml
//////////////
由于
empTotals.Count()
是 int
类型,我们无法使用 $.each()
对其进行迭代。
我还写了一个demo供你发送num和obj到signalr客户端。
这是示例代码
function InvokeProducts() {
connection.invoke("EmployeeTotal").catch(function (err) {
return console.error(err.toString());
})
connection.invoke("EmployeeTotalObj").catch(function (err) {
return console.error(err.toString());
})
}
// num
connection.on("ReceivedEmployees", function (empTotals) {
BindProductsToGrid(empTotals);
});
function BindProductsToGrid(empTotals) {
$("#totalEmployee h3").empty();
var content = `<h2>${empTotals}</h2>`;
$("#totalEmployee").append(content);
}
// obj
connection.on("ReceivedEmployeesObj", function (empTotals) {
BindProductsToGridObj(empTotals);
});
function BindProductsToGridObj(employees) {
//$("#totalEmployee h3").empty();
$.each(employees, function (index, employee) {
var content = `<h3>Name: ${employee.name} (ID: ${employee.id})</h3>`;
$("#totalEmployee").append(content);
});
}
connection.start().then(function () {
InvokeProducts();
})
Hub.cs
public async Task EmployeeTotal()
{
await Clients.All.SendAsync("ReceivedEmployees", 20);
}
public async Task EmployeeTotalObj()
{
List<Employee> employees = new List<Employee>
{
new Employee { Name = "AAA", Id = 1 },
new Employee { Name = "BBB", Id = 2 },
};
await Clients.All.SendAsync("ReceivedEmployeesObj", employees);
}
public class Employee
{
public string Name { get; set; }
public int Id { get; set; }
}
测试结果