Вы видите System.Linq.Enumerable.DistinctIterator<<>f__AnonymousType2<string,string>>
, потому что это именно то, что вы возвращаетесь: перечислимого анонимного типа с двумя строковыми свойствами.
Вы можете перебрать, что:
var model = result.Data;
foreach (var dimension in model)
{
int h = dimension.Height;
int w = dimension.Width;
}
Однако, вы не хотите идти вокруг сериализации и десериализации JSON туда и обратно, если метод API в том же проекте.
Либо ввести конкретный тип (в отличие от анонимного типа) и изменить тип возвращаемого для контроллера API:
public class Dimension
{
public int Height { get; set; }
public int Width { get; set; }
}
public IEnumerable<Dimension> Data()
{
return details.Select(c => new Dimension { Height = c.Height, Width = c.Width }).Distinct();
}
Или поставить логику в своем классе:
public class DimensionGetter
{
public IEnumerable<Dimension> GetDimensions()
{
return details.Select(c => new Dimension { Height = c.Height, Width = c.Width }).Distinct();
}
}
И назовите этот класс по обоим методам:
public JsonResult Data()
{
return Json(new DimensionGetter.GetDimensions(), JsonRequestBehavior.AllowGet);
}
public void ReadData()
{
var model = new DimensionGetter.GetDimensions();
}
вы хотите десериализации данных? –