问题描述
我正在尝试将对象从客户端传递到集线器: 在客户端上:
connection.invoke('MyMethod',{
i: 1,a: 25
});
在中心:
public async Task MyMethod(TestModel model)
{
// logic
}
型号:
public class TestModel
{
[JsonProperty("i")]
public double Min {get;set;}
[JsonProperty("a")]
public double Max {get;set;}
}
在MyMethod中,模型不为null,但值始终为0。
我做错了什么?
解决方法
根据您的描述,您应该在ASP.NET Core 3.0 SignalR项目中使用Newtonsoft.Json,因为asp.net核心默认情况下不使用Newtonsoft.Json。
您应该安装Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson NuGet软件包,然后如下所示修改startp.cs ConfigureServices方法:
services.AddSignalR()
.AddNewtonsoftJsonProtocol();
更多详细信息,您可以参考此article。