如何在 C# 方法中传递 Json 对象作为参数

我在控制器中有以下方法,并传递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 对象广播给客户端。


江户川乱折腾
浏览 211回答 1
1回答

繁星coding

我假设您想向每个 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 方法中受益,将特定类型的数据传递给客户端,因此客户端已经知道它正在获取什么类型的数据。
打开App,查看更多内容
随时随地看视频慕课网APP