【问题标题】:How to call SignalR Hub Method that has Enum parameters with a Javascript Client?如何使用 Javascript 客户端调用具有枚举参数的 SignalR Hub 方法?
【发布时间】:2021-12-22 23:16:26
【问题描述】:

使用 C# signalR 客户端很简单,而且可以正常工作;但我被一个 JS 客户端困住了。

 public async Task MyHubMethod(string userName, CityEnum city, FruitEnum fruit) {
    //etc.
 }
 
public enum CityEnum
{
    LONDON,
    LISBON,
    RIO,
    SYDNEY
}

public enum FruitEnum
{
    APPLES,
    BANANAS,
    ORANGES
}

//C# Client, YAY it works !
    string userName = "mindi-mink";
    CityEnum city = CityEnum.LONDON;
    FruitEnum fruit = FruitEnum.APPLES;
    await _connection.InvokeAsync("MyHubMethod", userName, city, fruit);
    

//Javascript Client:
    ???

除了更改服务器方法以获取字符串参数并将它们转换回Enums服务器端之外,不知道该怎么做;

如何从 Javascript signalR 客户端执行此操作? (不更改服务器方法签名)。

【问题讨论】:

    标签: signalr.client asp.net-core-signalr


    【解决方案1】:

    枚举值是整数,传递整数肯定可以吗?

    是的,刚刚测试过,它确实有效!

    定义对象以匹配您的服务器端枚举

    const CityEnum = {
        LONDON : 101,
        LISBON : 102,
        RIO : 103,
        SYDNEY : 104,
    }
    
    const FruitEnum = {
        APPLES     : 0,
        BANANAS    : 1,
        ORANGES    : 2,
    }
    
    //JS-Client:
    const userName = "mind-mink";
    const city = CityEnum.LONDON;
    const fruit = FruitEnum.APPLES;
    
    await _hubCnn.invoke("MyHubMethod", userName, city, fruit);
    

    【讨论】:

      猜你喜欢
      • 2016-06-16
      • 1970-01-01
      • 2018-04-30
      • 2018-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多