我目前正在開發基於no-sql的應用程序(使用raven db)。這個應用程序的核心部分是一個具有許多節點,子節點等的樹狀數據結構。Knockout js和Raven DB
當前,每個節點或子節點都由c#對象表示。父 - 子關係由父節點上的一組子節點構成,這是一種只向前關係。
整個事情由臨時表單處理,在Mvc應用程序中,爲每種數據類型提供適當的GET和POST。整個圖形在Raven DB上以JSON形式存儲。
現在我們的目標是使用knockoutjs修改UI部分。由於KO也適用於json數據結構,所以我想知道是否有一種方法可以使ravendb json結構「knockout compatible」,這意味着我可以直接使用它而不必創建KO特定的結構(以實現可觀察性等)然後創建兩者之間的映射。
對象圖的示例:
public class NodeA
{
public string Name {get;set;}
public List<SubNode> Childs {get;set;}
}
public class SubNode
{
public string Name {get;set;}
public bool SomeBool {get;set;}
}
public class NodeB
{
public string Name {get;set;}
public int SomeInt {get;set;}
}
public class GraphToStore
{
public List<NodeA> NodeAList {get;set;}
public List<NodeB> NodeBList {get;set;}
}
東西沾到了UI更新後的讀/寫部分仍然會處理服務器端,用ajax調用。驗證將在服務器端,並通過ajax調用返回給客戶端。我的問題正如我所說的使ravendb json與knockoutjs一起工作,否則我不得不重構整個事物並映射它,而且圖形非常龐大(超過50個班級)。
我沒有體驗過Raven DB,但是如果它生成的JSON看起來和NewtonSoft.Json.JsonConvert.SerializeObject(Object)的返回類似,那麼我猜測它是沒有問題的。 –