1
我開發了一個非常簡單的WebApi,以測試一些Knockout.js特性。 IMO它應該正常工作,但是當我通過Fiddler向Api發出GET請求時,它根本不返回任何JSON。MVC4 Web Api不序列化我的類
我正在使用MVC4的JSON默認序列化程序。
這是我的模型......
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);
}
}
...這裏是我的控制器......
public class PageController : ApiController
{
static readonly ISimplePageRepository _repository = new TestPageRepository();
// GET /api/page
public IEnumerable<Page> GetAllPages()
{
return _repository.GetAll();
}
}
...以防萬一,這是我的回購...
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();
}
}
提前感謝!
您的Page類是否具有可序列化屬性? – JonVD 2012-04-12 15:36:02
已經嘗試,但沒有工作......也嘗試過與其他類,但它並沒有訣竅 – faloi 2012-04-12 15:39:07
如果我將頁面的控件類型更改爲列表