SignalR帮助将List <string>传递给客户端</string>

时间:2014-01-26 10:43:45

标签: c# json.net signalr

使用SignalR并且直到现在都没有问题。这可能是一个简单的问题,但我很难过。

我下面有一个C#对象,我发送给客户端:

public class Message
{
    // Notifications
    public string Title { get; set; }
    public string Content { get; set; }
    public int zoneCount { get; set; }

    public string CntrX { get; set; }
    public string CntrY { get; set; }

    // Polygon Overlays
    List<string>  pointList = new List<string>()
}

我将添加到C#对象中定义的pointList;

    pointList.Add(soveVarX, soneVarY);

在我的客户端(javascript)中收到SignalR消息,如下所示:

 messenger.client.add = function (message){
 rmPoly = [{}];

    // And then to push...

       var sep = ',';
       var rmPoly = [];
            var len = messages.zoneCount;
            for (var i = 0; i < len; i++) {
                var obj = {
                   x: gPoints [0],
                   y: gPoints [1],
               };
        rmPoly.push(obj); 
 };

我正在尝试将我的pointList作为对象推送到客户端中名为rmPoly的对象数组。到目前为止,我已经尝试过这个:

    var str1= message.pointList[0]; //<------How to get the List object?
    var  gPoints = str1.split(",");

然后推......

        var rmPoly = [];
            var len = messages.length;
            for (var i = 0; i < len; i++) {
                var obj = {
                   x: gPoints [0],
                   y: gPoints [1],
               };
        rmPoly.push(obj); 

但是message.pointList [0]没有值/ undefined。

有任何建议或更可行的解决方案吗?

感谢vtotola的回答!! ...知道这很容易让我错过了。 这也可能在将来帮助某人。

我能够访问SignalR中的列表并将对象推送到下面的数组:

 messenger.client.add = function (message) {
    var str1;
    var gPoints;
    var rmPoly = [];

    var len = message.PointList.length;
    for (var i = 0; i < len; i++) {
            str1 = message.PointList[i];
            gPoints = str1.split(",");
            rmPoly.push({ x: gPoints[0], y: gPoints[1] });
    };
   }

1 个答案:

答案 0 :(得分:5)

在您的代码中,pointList是一个私有字段,它不会被序列化。把它变成公共财产。

public class Message
{
    // Notifications
    public string Title { get; set; }
    public string Content { get; set; }
    public int zoneCount { get; set; }

    public string CntrX { get; set; }
    public string CntrY { get; set; }

    // Polygon Overlays
    public List<string>  PointList {get; set;}
}

干杯。