2012-01-18 2 views
0

ここでの問題は、結果として得られるJSON配列の最下部にあることからも明らかです。私のコードからは、出力にフィールド名(「dma」:「Albany-Schenectady-Troy」ではなく「Albany-Schenectady-Troy」など)が含まれていない理由を特定できません。誰かが問題の原因を見つけられますか?My JsonResultにフィールド名のない値が含まれています

モデル

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; 

    } 

コントローラ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 "]]} 

EDIT結果として得られる

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

- ここに私の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(); 
    } 
} 
です
+0

EstimateDetailsModelクラスはシリアル化可能ですか? http://stackoverflow.com/questions/6020889/asp-net-mvc-3-controller-json-method-serialization-doesnt-look-at-datamember-n – Jirapong

+0

@Jirapongと重複している可能性があります。しかし確信が持てません。上記の編集をご覧ください。 – hughesdan

+0

モデルからすべての列挙子コードを削除します。 – Joe

答えて

2

モデルから列挙子コードを削除する必要があります。デフォルトの動作を上書きしています。

関連する問題