我希望看到SO社區對此的迴應。我明白,ViewModel基本上用來將視圖與數據綁定。當表單提交時,返回的對象(模型綁定)應該是ViewModel還是實體?我知道ViewModel是一個實體,但我在這裏理論上正在討論。我想確保我和我的團隊瞭解這些概念。ViewModel無處不在!
2
A
回答
0
這是確定的,只要你不妥協的設計,爲lazyness兩者都做。例如。綁定到複雜的實體並不容易 - 一個例子是如果實體沒有無參數的構造函數 - 並且如果您避免使用這些實體來簡化綁定......這很糟糕。這就像所有的變量「字符串」,只是因爲你的UI控件無法理解日期或浮點數。它也可能導致愚蠢的類DTO和貧血域模型。 但是,如果您不需要智能實體 - 可以在模型綁定中使用它們。
一如既往,需要經驗和良好品味才能做出決定。沒有簡單的規則。避免UI對域名設計產生影響的一種方法是首先開發域名級別(TDD在這裏是一個很好的幫助)。另一種方法是爲你的域層提供幾個「客戶端」 - 不同的需求將使你將核心功能提取到域層,將特定的東西(如表現屬性和格式)移動到適當的層/視圖模型。
0
我使用ViewModel將數據傳遞到頁面並獲取數據。我所有的表單首先進入一個ViewModel,我將運行任何需要的驗證,然後將其轉換爲相應的DTO/Entity。
3
我喜歡給一個視圖模型到視圖,並有ModelBinder的綁定到我的實體企業。
我的ViewModels通常包含基於顯示數據的小位(例如是否要顯示窗口小部件),所以他們並不真正需要綁定。
善良,
丹
+0
這幾乎是我所做的,但我注意到很多人綁定到他們的視圖模型。 – RailRhoad 2010-01-18 16:36:56
相關問題
- 1. 在ViewModel中處理手勢
- 2. ViewModel處理事件
- 3. IHTMLDocument2無處不在
- 4. SlidingDrawer無處不在
- 5. Javadocs無處不在
- 6. 在ViewModel/Model中處理致命異常
- 7. 無法填充ViewModel
- 8. 無處不在的團隊資源管理器無處不在
- 9. ViewModel不在POST上更新
- 10. MVVM在ViewModel上處理所有未處理的擊鍵
- 11. 無法在Kotlin上設置ViewModel
- 12. 無法在View中看到ViewModel屬性?
- 13. viewModel繼承無法在MVC中工作
- 14. Packery Margin無處不在
- 15. Cocos2d unsigned int無處不在
- 16. TD懷特無處不在
- 17. ViewModel和無盡的集合
- 18. 無法找到Viewmodel屬性
- 19. MVC ViewModel不回發
- 20. ViewModel做和不做
- 21. MVC ViewModel不回發
- 22. ViewModel來處理多個數據模型
- 23. 何處將ViewModel綁定到視圖?
- 24. ViewModel中的文本框事件處理
- 25. 如何處理ViewModel中的集合?
- 26. 無法將一個viewModel的observable更新爲另一個viewModel
- 27. Autowired @Service不是無處不在
- 28. Window.location工作但不是無處不在
- 29. PHP腳本並不是無處不在
- 30. 如何處理ViewModel中的Validation.Error而不是View的代碼?
但是,如果您的模型綁定器可以綁定到適當的DTO並應用驗證,爲什麼要進行轉換?只是想知道... – RailRhoad 2010-01-18 16:35:25
@ RailRhoad-想想像「我同意條款和條件」這樣的事情。 – RichardOD 2010-01-18 16:37:29
@ RichardOD-對不起,我真的不知道你的意思! – RailRhoad 2010-01-18 16:43:24