2010-01-13 70 views
1

我有一個ASP.NET MVC應用程序,我有每個viewmodel的接口。ASP.NET MVC模型默認在崗位

在一個名爲/產品視圖/詳細資料/ 50我可以用ID編輯詳細信息產品= 50

我使用強類型的意見,與類型爲IProduct。我使用Castle Windsor做DI。當我在/ Product/Details/50視圖上發佈編輯表單時,IProduct實例默認爲在同一控制器中名爲Details(int id)的HttpGet方法上設置的內容。

我想這與modelbinding有關。如果我將HttpPost方法詳細信息(IProduct產品)更改爲詳細信息(產品產品),它似乎工作正常。

任何想法?

+0

是否有任何特定的原因,您正在使用您的viewmodels接口?我個人認爲,viewmodels應該都是簡單的POCO對象,沒有功能 - 即不需要接口。 – Charlino 2010-01-13 22:28:44

+0

沒理由。我會拋棄接口。不值得額外的工作。 – MartinHN 2010-01-14 07:10:25

回答

1

這裏的問題是,當我們遇到IProduct時,我們不知道要實例化哪種類型。我們的模型粘合劑不與您的DI容器集成。大多數情況下,我同意Charlino的觀點,你的領域模型可能應該是基於接口的,但是你模型所綁定的對象應該是非常簡單的POCO對象,它們代表了表單中發佈的值。

+0

我已經考慮過傾銷接口,因爲我認爲我得到的價值不值得做額外的工作。 – MartinHN 2010-01-14 07:09:45