Ich habe ein sehr einfaches WebApi entwickelt, um einige Knockout.js Funktionen zu testen. IMO sollte es richtig funktionieren, aber wenn ich eine GET-Anfrage an die API über Fiddler mache, gibt es überhaupt kein JSON zurück.MVC4 Web Api serialisiert meine Klasse nicht
Ich verwende MVC4 JSON Standard Serializer.
Das ist mein Modell ...
public class Page
{
public string Name { get; set; }
public List<Control> Controls { get; set; }
}
public abstract class Control
{
public string Name { get; set; }
public abstract string SayHi();
}
public class Form : Control
{
public override string SayHi()
{
return string.Format("Hi, I'm form {0}", Name);
}
}
public class Datagrid : Control
{
public override string SayHi()
{
return string.Format("Hi, I'm datagrid {0}", Name);
}
}
... hier ist mein Controller ...
public class PageController : ApiController
{
static readonly ISimplePageRepository _repository = new TestPageRepository();
// GET /api/page
public IEnumerable<Page> GetAllPages()
{
return _repository.GetAll();
}
}
... und nur für den Fall, das ist mein Repo ...
public class TestPageRepository : ISimplePageRepository
{
private List<Page> _pages = new List<Page>();
public TestPageRepository()
{
Add(new Page {Name = "pagina1", Controls = new List<Control>() {new Datagrid() {Name = "laTablita"}}});
Add(new Page {Name = "pagina2", Controls = new List<Control>() {new Form() {Name = "elFormito"}}});
}
public Page Add(Page item)
{
_pages.Add(item);
return item;
}
public IEnumerable<Page> GetAll()
{
return _pages.AsQueryable();
}
}
Vielen Dank im Voraus!
Ist Ihre Page-Klasse mit einem Serializable-Attribut versehen? – JonVD
Bereits versucht, aber nicht funktioniert ... auch mit den anderen Klassen versucht, aber es hat nicht den Trick – faloi
Wenn ich Seite Controls Typ zu einer Liste