将对象参数传递给集线器方法

Passing object parameter to hub method

虽然网上有很多类似的问题,但我还没有找到合适的解决问题的方法:

我有一个 SignalR 集线器方法:

public ClientResponses ProcessRequest(ClientRequest request) {...}

此方法获取 ClientRequest 对象作为参数:

[Serializable]
public class ClientRequest : BaseClientRequest
{
    [JsonProperty("input")]
    public string Input { get; set; }
}

我是这样从客户端调用这个方法的:

var input = new Input(message);
var jsonInput = JSON.stringify(input);
hubProxy.server.processRequest(jsonInput);

发送时,它们的值为:

但是服务器端的方法(ProcessRequest)从未调用过。

当我更改此方法以获取字符串类型参数并从客户端发送纯字符串时,它工作正常。

简短的回答是:

var jsonInput = JSON.stringify(input); 

不需要,因为您可以直接将 javascript 对象发送到 SignalR。