一、概述
在 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。 |