试图访问通过JSON传回的类

时间:2010-12-08 21:08:39

标签: asp.net-mvc json

我通过JSON对象调用此函数

    [AcceptVerbs(HttpVerbs.Get)]
    public JsonResult GetMatchDetails(int id)
    {
        var match = GetRepository<Match>().Get(id);

        return Json(match, JsonRequestBehavior.AllowGet);
    }

其中var匹配来自类(trimed down version但我不需要使用其余的)

 public class Match : Entity
 {
    public virtual DateTime? MatchDate { get; set; }
    public virtual ICollection<Boxer> Boxers { get; set; }
    public virtual string Location { get; set; }
    public virtual MatchResult Result { get; set; }
    public virtual int Rounds { get; set; }
 }

来自javascript的调用是(来自调用的函数)

        var matchStuff = null;
        //Get a class which will have the Match and two boxers part of it
        $.getJSON("/BoxingPredictionLeague/GetMatchDetails/" + MatchId, function(data){
            matchStuff = data;
            alert(matchStuff.Id);

        });

警报在哪里我试图使用matchStuff [0] .Id以及matchStuff.Id警告Id,但它根本不警告......似乎只是崩溃或该对象为空!

1 个答案:

答案 0 :(得分:1)

明显的问题:

您确定从存储库返回了一个对象吗?

你确定有'Id'属性吗? (未在代码示例中列出)

,否则:

如果您使用chrome,则可以执行以下操作以确切了解通过Json返回的内容。

  1. 转到工具 - &gt;开发人员工具
  2. 点击“资源”
  3. 在这些按钮下方有一个小栏,点击XHR。
  4. 在左侧,您会看到所有ajax调用该页面已启动。标题会显示你发送的内容;内容将显示您收到的内容。内容是直接JSON,但您应该能够从那里确定它。
  5. 如果您使用的是firebug:

    1. 通过左下方的图标打开萤火虫(确保其已启用)
    2. 点击“网络”标签
    3. 在这些按钮下方有一个小栏,点击XHR。
    4. 您将看到所有ajax调用的列表。扩展一个将使您能够看到标题和内容响应。
    5. 这两种方法中的一种应该可以帮助您追踪它 - 其他一切看起来都是正确的代码示例。