2011-02-07 38 views
1

如何綁定我的域對象汽車查看?ASP.NET MVC模型綁定和默認構造函數

MVC說「你的類必須有默認構造函數」。但我不想通過創建默認構造函數來更改任何業務規則。我能看到的唯一解決方案是在View中使用CarView,然後將其映射到Car。

P.S. NHibernate也想要一個默認構造函數,但它可以被保護。這我可以做。

回答

1

恕我直言,它是一個好主意,以分離從你的域對象去你的看法的對象。這有很多好處(我現在不會進入)。

然後可以使用Automapper到您的視圖模型映射到你的域對象

+0

我同意 - 你的UI應該工作與視圖模型,而不是您的業務對象。 MVC完全是關於問題的分離。這可能看起來像很多額外的工作,但與Automapper它是花生,並會在以後節省你的悲傷。 – 2011-02-07 18:09:36

1

你可以自己創建的對象,並調用的UpdateModel做結合,而不是:

public ActionResult MyAction() 
{ 
    var car = new MyCar(somethingToPassIntoTheConstructor); 

    UpdateModel(car); 

    // Do stuff with car. 
}