Попытка получить доступ к классу, переданному обратно через JSON - PullRequest
1 голос
/ 09 декабря 2010

Я вызываю эту функцию через объект JSON

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

        return Json(match, JsonRequestBehavior.AllowGet);
    }

, где var-соответствие относится к классу (урезанная версия, но мне не нужно использовать остальные)

 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);

        });

Где предупреждение, я пытался выдать Id с помощью matchStuff [0] .Id, а также matchStuff.Id, но этовообще не предупреждает ... кажется, что просто происходит сбой или объект нулевой!

1 Ответ

1 голос
/ 09 декабря 2010

Очевидные вопросы:

Вы уверены, что получаете объект, возвращенный из вашего хранилища?

Вы уверены, что есть свойство "Id"? (его нет в примере кода)

В противном случае:

Если вы используете Chrome, вы можете сделать следующее, чтобы точно узнать, что возвращается через Json.

  1. Перейти к Инструменты -> Инструменты разработчика
  2. Нажмите «Ресурсы»
  3. Под этими кнопками есть небольшая полоска, нажмите XHR.
  4. Слева вы увидите все вызовы ajax, инициированные страницей. Заголовки покажут, что вы отправляете; контент покажет, что вы получили. Содержимое прямое JSON, но вы сможете определить его оттуда.

Если вы используете firebug:

  1. Открыть firebug через значок в левом нижнем углу (убедитесь, что он включен)
  2. Нажмите на вкладку «Нетто»
  3. Под этими кнопками есть маленькая полоска, нажмите XHR.
  4. Вы увидите список всех вызовов ajax. развернув один, вы увидите как заголовки, так и ответ контента.

Один из этих двух методов должен помочь вам отследить его - иначе все остальное выглядит правильно с помощью вашего примера кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...