Мой JsonResult содержит значения без имен полей - PullRequest
0 голосов
/ 18 января 2012

Проблема здесь довольно очевидна из результирующего массива JSON внизу. Из моего кода я не могу определить, почему выходные данные не содержат имен полей (например, «dma»: «Albany-Schenectady-Troy», а не просто «Albany-Schenectady-Troy»). Может кто-нибудь определить, в чем проблема?

Модель

    public IEnumerable<EstimateDetailsModel> GetEstimateDetails(int id)
    {
        var estimateDetails = from e in db.Estimates
                              join es in db.EstimateStations on e.EstimateID equals es.EstimateID
                              join s in db.Stations on es.StationID equals s.StationID
                              join m in db.Markets on s.MarketID equals m.MarketID
                              where e.EstimateID == 1
                              select new EstimateDetailsModel { Dma = m.DmaName, CallSign = s.CallSign, Description = s.StationDescription };
        return estimateDetails;

    }

Контроллер

   public JsonResult EstimateDetails(int id)
    {
        var details = estimatesRepository.GetEstimateDetails(id);
        return this.Json(new { details = details }, JsonRequestBehavior.AllowGet);
    }

Результирующий JSON

{"details":[["Albany-Schenectady-Troy","WRGB","WRGB (CBS) Schenectady"],["Albany-Schenectady-Troy","WTEN","WTEN (ABC) Albany "],["Albany-Schenectady-Troy","WXXA","WXXA (Fox) Albany "],["Atlanta","WGCL","WGCL (CBS) Atlanta "],["Atlanta","WXIA","WXIA (NBC) Atlanta "],["Austin","KXAN","KXAN (NBC) Austin "],["Austin","KVUE","KVUE (ABC) Austin "],["Baltimore","WMAR","WMAR (ABC) Baltimore "],["Baltimore","WBAL","WBAL (NBC) Baltimore"],["Baltimore","WJZ ","WJZ  (CBS) Baltimore "],["Baltimore","WBFF","WBFF (Fox) Baltimore "]]}

РЕДАКТИРОВАТЬ - вот мой класс EstimateDetailsModel

public class EstimateDetailsModel : IEnumerable<string>
{
    public string Dma { get; set; }

    public string CallSign { get; set; }

    public string Description { get; set; }

    public IEnumerator<string> GetEnumerator()
    {
        yield return Dma;
        yield return CallSign;
        yield return Description;
    }

    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
    {
        return this.GetEnumerator();
    }
}

1 Ответ

2 голосов
/ 18 января 2012

Вам необходимо удалить код перечислителя из вашей модели.Он переопределяет поведение по умолчанию.

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