我感到困惑使視圖和控制器層之間對象時,當我應該使用強類型視圖型號VS JSON對象。我的理解是,使用JSON對象遵循MVVM模式,並保持圖層鬆散耦合。對於任何反饋,我們都表示感謝。何時使用強類型視圖模型或使用JSON對象
回答
這兩種方法都有優點和缺點。
,一方面,寬鬆類型意味着你可以通過同類型所有的地方和消費者只需消耗他們想要的領域,如果存在的話。這使得你的程序看起來很簡單,因爲它有這麼簡單的架構。
在另一方面,這意味着你推域的解釋給消費者,如果你有複雜的數據類型,這可以迅速成爲消費者處理的噩夢。
別搞錯了:你會處理的類型安全地方。你的選擇是在哪裏。
我個人更喜歡用定義良好的接口強類型的系統,所以這是我的建議。
編輯
Randolpho,是我同意的偏好強類型 對象。在我的大部分應用程序的工作,我得到了一通強類型 對象返回到我的控制器,在那裏我將映射到一個強類型 「視圖模型」對象,然後通過該視圖模型回部分 /圖。這個當前項目我正在進行一個REST調用,並返回一個JSON 對象。這是什麼讓我質疑我應該使用 JSON或類型的對象。 - derek kenney
如果你正在製作一個REST webservice,那麼你應該從你的View中返回JSON,盡一切辦法。
但在內部,我認爲你最好使用序列化,並從JSON強類型數據類型。
Randolpho,是的,我同意強類型對象的偏好。在大多數我的應用程序的工作,我得到了一通一個強類型的對象回我的控制器,在那裏我將映射到一個強類型的「視圖模型」對象,然後傳遞視圖模型回分/視圖。這個當前項目我正在做一個REST調用並返回一個JSON對象。這是什麼讓我質疑我應該使用JSON還是輸入對象。 – 2011-12-19 17:16:27
@derekkenney我通過編輯回覆。 – Randolpho 2011-12-19 20:25:07
視圖模型通常與直接返回HTML的控制器操作一起使用。 JSON更適合從AJAX調用中使用。這就是說,你也可以使用JSON與客戶端UI框架,如knockoutjs和backbonejs。
謝謝Darin。這是有道理的。在我當前的項目中,我通過Javascript Ajax調用進行操作調用,並通過JS返回我綁定到我的HTML的JSON對象。我只是不確定這是怎麼回事,直接返回HTML。 – 2011-12-19 17:13:52
- 1. MVC2混淆何時使用視圖模型或域對象
- 2. 用對象模型或JSON解析視圖返回JSON
- 3. HTTParty - JSON強類型對象
- 4. 查找強類型剃刀視圖(或任何視圖)的模型類型
- 5. 使用不同的模型渲染強類型局部視圖
- 6. 使用PagedList.MVC時無法使用強類型視圖
- 7. 使用一個或多個對象創建視圖模型
- 8. 使用強類型視圖驗證視圖中的部分模型
- 9. 使用強類型的模型繼承
- 10. 使用類型爲T或接口的Model類爲強類型視圖
- 11. 強類型的MVC視圖模型
- 12. 使用Ember.js按模型類型/對象值選擇視圖模板
- 13. 在MVC3中使用強類型視圖時可能會繼承模型嗎?
- 14. 使用強類型方法的類型對象
- 15. 使用動態類型的MVC強類型視圖
- 16. 使用「ref」和/或「out」對象類型
- 17. 使用視圖模型模式與MVC 2強類型HTML輔助
- 18. 如何在強類型視圖中包含多個模型對象?
- 19. 強類型對象
- 20. 使用強類型枚舉建模類型和子類型?
- 21. 強類型視圖
- 22. 使用數據註釋MVC驗證 - 模型類或視圖模型類?
- 23. JSON對象的強類型數組
- 24. 如何使用Backbone.js模型和視圖或使用深嵌套JSON對象的Rails
- 25. 轉換JSON數據強類型視圖
- 26. 使用HTML.EditFor對父視圖模型
- 27. 使用模板的空對象或類/空類型
- 28. 如何使用複雜的對象與我的視圖模型?
- 29. 如何使用模型對象的Yii控制器和視圖
- 30. 使用視圖模型
JSon更多的Ajax或需要在客戶端操縱的東西。動態內容,你不知道你的回報。當你確切知道你的控制器正在返回什麼時,強烈地輸入視圖。 – 2011-12-19 17:01:06