ASP.NET MVC模型绑定和默认构造函数

时间:2011-02-07 17:59:51

标签: asp.net-mvc model-binding

如何将我的域对象Car绑定到View?

MVC说“你的类必须有默认构造函数”。但我不想通过创建默认构造函数来更改任何业务规则。我能看到的唯一解决方案是在我的视图中使用CarView,然后将其映射到Car。

P.S。 NHibernate也想要一个默认构造函数,但它可以受到保护。我可以这样做。

2 个答案:

答案 0 :(得分:1)

恕我直言,最好从你的域对象中分离出你视图的对象。这有很多优点(我现在不会讨论)。

然后,您可以使用Automapper将视图模型映射到域对象

答案 1 :(得分:1)

您可以自己创建对象并调用UpdateModel来代替绑定:

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

   UpdateModel(car);

   // Do stuff with car.
}