我在控制器中有以下方法,并传递JsonResult给 C# 中的另一个类 (Receiver.cs)。那么,在 Receiver.cs 类中作为参数的正确数据类型是什么?我使用过JsonResult,但不确定它是否是这种情况的最佳选择?我还将此结果作为 Json 对象从 Receiver.cs 类返回给客户端。控制器:public void Create() { //code omitted for brevity var data = GetData(); var data = Json(new { Data = data, success = true }, JsonRequestBehavior.AllowGet); Receiver.BroadcastData(data); }这是 Receiver.cs 中的方法:接收器.cs:public class Receiver{ public static void BroadcastData(JsonResult data) { ... }}更新: 实际上我使用 ASP.NET MVC 和 SignalR。这里我想将 Json 对象从 Controller 传递到 Hub 类。之后,我会将这个 Json 对象广播给客户端。
1 回答
繁星coding
TA贡献1797条经验 获得超4个赞
我假设您想向每个 SignalR 连接发送一个 JSON 对象。
using 的Json()目的是从控制器操作返回 JSON 对象,因此它并不适合这里。
但 SignalR 让这一切变得简单。您发送到 SignalR 客户端的任何对象都会被序列化为 JSON。所以你不必担心序列化。您不必告诉它“我希望将其作为 JSON 发送”。
因此,如果您想要一个通用方法将任何类型的对象发送到客户端,只需接受object. 当您将其传递给 SignalR 时,它会将其序列化为客户端的 JSON。
public void Create() {
//code omitted for brevity
var data = GetData();
Receiver.BroadcastData(data);
}
public class Receiver
{
public static void BroadcastData(object data)
{
...
}
}
但是,我并不完全知道这会有多大用处。客户端仍然必须知道它是什么类型的数据,以便能够以有意义的方式处理它。因此,您可能会发现实际上可以从不同的 SignalR 方法中受益,将特定类型的数据传递给客户端,因此客户端已经知道它正在获取什么类型的数据。
- 1 回答
- 0 关注
- 210 浏览
添加回答
举报
0/150
提交
取消