2010-04-20 68 views
1

我有一个C#对象(下),我试图发送到我的JavaScript。c# - > JavaScript,JSON解码丢失属性

我的问题是,尽管我可以迭代列表中的项目,但我无法获取字符串属性('期间')。

在JS中引用对象根本没有显示任何属性。 JSON-编码在C#中,我仍然可以看到该属性只是返回给调用者之前(悬停在下面函数的结果变量):

[OutputCache(Duration = 0, VaryByParam = "None")] 
    public JsonResult GetRankingList() 
    { 
     Response.ContentType = "text/javascript"; 
     var user = _userService.GetUserByPrincipal(User); 

     // Note, we do this while the user waits as we need to make progress in repeated calls to get the compared ranking list. 
     _businessLogicServiceMaintenance.PerformMaintenanceSteps(); 

     //TODO: Replace with userid (Guid) 
     var rankingList = _presenterService.GetRankingListForDisplay(user); 

     if (rankingList == null) 
      return Json(""); 

     var result = Json(rankingList); 
     return result; 
    } 

如何在地球上,我可以突破这个?任何意见赞赏!

你的,安德斯,丹麦,

public class RankingListForDisplay : List<RankingListLine> 
{ 
    public string Period { get; set; } 
} 
+0

你是如何从列表中创建JSON和究竟什么是你把它返回给调用者之前,你所得到的结果呢? – drs9222 2010-04-20 16:42:48

+0

您好drs, 对不起 - 没有看到评论。 我编辑了这个问题来显示被调用的c#代码。 – 2010-04-26 18:27:08

+0

什么是您正在使用的JSON序列化程序? – 2010-04-26 18:31:32

回答

0

感谢你的时间 - 我找到了解决办法。

我将RankingListForDisplay的上述实现更改为下面的实现。出于某种原因,JSON喜欢这样的方式更好;-)

public class RankingListForDisplay 
{ 
    public List<RankingListLine> Lines { get; set; } 
    public string Period { get; set; } 

    public RankingListForDisplay() 
    { 
     Lines = new List<RankingListLine>(); 
     Period = "<Unspecified>"; 
    } 
}