如何通过 SignalR 从数据库获取总数

问题描述 投票:0回答:1

我想通过 signalR 获取员工总数

但我做不到

我在我的项目 asp core 上添加了 signalR

创建中心 > 仪表板Hub

///////////////////////////////

创建dasjboard.js

////////////////

创建index.cshtml

//////////////

javascript asp.net-core asp.net-mvc-4
1个回答
0
投票

由于

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

测试结果

© www.soinside.com 2019 - 2024. All rights reserved.