一、概述
在 ASP.NET 或 ASP.NET Core 中,如果服务端得到一个 JSON 字符串(比如从 Redis 缓存中获取),我们可以通过 Content 方法或直接创建 ContentResult 对象来作为 Action 的返回值。
1 | var json = "{\"key\": \"value\"}"; |
1 | return new ContentResult |
而在 SignalR 中,在 ASP.NET Core 7.0 之前,对于一个 JSON 字符串只能先反序列化,否则 Web 前端得用 JSON.parse() 处理一次。
本文主要记录测试 RawResult 的结果。
二、服务端
1 | public class KVObject |
上述代码中,
json字符串变量可能是从其他进程(如数据库)、文本文件或网络获取。
在 .Net 7 中,Test6 会有异常,.Net 8 尚未测试。
三、客户端
1 |
|
四、测试
注释 Test6 的调用后。console.log 输出如下:
1 | Test1: {"Key": "1"} string |
通过查看 WebSocket 消息日志也能确认这一点(下面的日志经过手工整理):
1 | // Test1 的调用和返回值。返回值的类型是 string。 |