1
我在asp.net mvc 4 beta中測試新的ApiController,但是當我嘗試返回類似下面的類時,只有幾個屬性被序列化了?ASP.NET MVC 4 ApiController不會序列化所有屬性
public class PageModel : IPageModel {
public string Id { get; set; }
public virtual IPageMetadata Metadata { get; private set; }
public PageModel() {
Metadata = new PageMetadata();
}
}
這是我的API控制器
// GET /api/pages/5
public PageModel Get(string id) {
return new PageModel { Id = "pages/1", Metadata = {Name = "Foo"} };
}
的代碼,這是結果
{
Id: "pages/1",
Parent: null
}
是否有可能獲得完整的對象,而不是隻有幾件事情?
那沒有解決問題,或者我的意思是當我改變它時,我得到另一個錯誤http://pastebin.com/gN23Axyr ...它似乎像默認的序列化程序不處理IPageMetadata的序列化,如果我改變它到PageMetadata它的作品。是否有更好的序列化程序包括可以處理這個,也許小寫JSON而不是BumbyCaps的外觀? – Marcus 2012-02-23 19:57:54
你不能序列化一個接口,但是你可以嘗試在'PageModel'類中放置'[KnownType(typeof(PageMetadata))]'屬性。只要對象引用類型是「PageMetadata」,就應該修復'Metadata'屬性的序列化。 – 2012-03-15 13:02:40