我知道使用域模型作爲視圖模型可能不好。如果我的域模型具有一個名爲IsAdmin的屬性,並且我有創建控制器操作來創建用戶,則某人可以更改我的表單並將其發送到POST一個IsAdmin = true表單值,即使我沒有在我的視圖中公開這樣的文本字段。如果我使用模型綁定,那麼當我提交我的域模型時,該人現在將成爲管理員。因此,該解決方案只會暴露視圖模型中需要的屬性,並使用像AutoMapper這樣的工具將我的返回視圖模型對象的屬性值映射到我的域模型對象的屬性值。但是我讀過一個類的綁定屬性可以用來指示模型綁定器應該綁定哪些屬性。那麼究竟是什麼原因讓兩個不同的類(域模型和視圖模型)基本代表相同的事情,然後在映射它們時會產生開銷?這是更多的代碼組織問題,如果是的話,我如何從中受益?爲什麼兩個類,查看模型和域模型?
編輯
一個我遇到的視圖模型這是從域模型獨立的最重要原因是實現MVVM模式(基於Martin Fowler的PM模式),用於管理需要複雜的用戶界面。
看看這個問題也太http://stackoverflow.com/questions/3094633/bestpractice-mixing-view-model-with-domain-model – 2011-02-01 17:40:36