2010-12-08 2 views
1

Я называю эту функцию с помощью JSON объектаПопытка получить доступ к классу передается обратно через JSON

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

     return Json(match, JsonRequestBehavior.AllowGet); 
    } 

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

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

     }); 

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

+0

Предложение по его устранению: установите Firebug в Firefox, запустите его и посмотрите вкладку Консоль, когда вы вызываете вызов JSON для выполнения. Я не уверен, но я думаю, что он должен появиться там с более подробной информацией о том, что произошло, чем предоставит отладчик VS. – guildsbounty 2010-12-08 21:14:13

+0

mmm ive попытался установить точки останова в javascript как в хромированном, так и в firebug, и по какой-то причине он не попадает. Но код после его попадания. Поскольку у меня есть другой код, который продолжается, пока объект JSON ждет, пока его данные вернутся ... может ли это быть чем-то связано с этим? – Steve 2010-12-08 21:41:00

ответ

1

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

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

Уверены ли вы, что у вас есть свойство «Id»? (Его нет в списке в образце кода)

Иначе:

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

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

Если вы используете поджигатель:

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

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

Смежные вопросы