使用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] });
};
}
答案 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;}
}
干杯。