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;
}
控制器
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();
}
}
您的EstimateDetailsModel类是否可串行化?并可能与重复http://stackoverflow.com/questions/6020889/asp-net-mvc-3-controller-json-method-serialization-doesnt-look-at-datamember-n – Jirapong 2012-01-18 04:38:15
@吉拉朋我认为这是,但我不确定。请参阅上面的修改。 – hughesdan 2012-01-18 04:43:24
删除模型中的所有枚举器代码。 – Joe 2012-01-18 04:44:14