2012-10-21 152 views
2

我開始使用新的Web API和Knockout構建一個概念驗證SPA,到目前爲止,我已經設法創建了API控制器,並使用Knockout消耗它,使用Knockout映射映射實體和數組。ASP.NET MVC 4 Web API&Knockout.js

我現在正在嘗試創建一個簡單的CRUD,但我無法理解如何實現ViewModels。

到目前爲止從來就拿出2個選項,如下所示:

  • 我可以定義一個視圖模型在服務器上,包含entity's屬性,再加上同一實體的數組。當我輸入CRUD功能時,我調用服務器並檢索該ViewModel,具有實體列表和用於創建新條目的屬性。

  • 我可以定義2 ViewModels,一個與網格數據,另一個與實體的屬性。當我調用CRUD功能時,我得到網格數據,當我想編輯/創建一個新條目時,我調用服務器併爲其檢索ViewModel。

在這兩個選項我使用一個單一視圖,其中包含了格網定義,和編輯/創建表的格式,這是我在JQuery的彈出顯示。

我不知道哪一個是最好的選擇,我開始傾向於第二個,但一些指導將不勝感激。

在此先感謝!

回答

1

您真的需要在啓動「創建/編輯」對話框時調用服務器嗎?您是否可以不具有EntityVM的ObservableArray(Knockout視圖模型)作爲網格的綁定源,並且當您單擊Add New或單擊現有項目時,創建/編輯對話框變得可見(可能是也可以使用綁定來完成),可以使用空的EntityVM作爲數據源,也可以使用從網格源項目複製的已填充的EntityVM?然後,當您單擊保存時,將實體作爲JSON Ajax發送到服務器,並返回代表更新的網格數據的JSON響應?或者,這不正確的理解你的語境?

+0

是的,這是一個更清潔的方法。謝謝! –