2011-02-13 22 views
0

我很新的ASP.NET MVC,所以我希望我的问题是有道理的。我使用POCO对象作为我的模型。我的理解是,当表单被提交时,MVC可以创建我的业务对象的新实例并自动从表单中填充属性。创建实例时,ASP.NET MVC调用我的依赖关系解析器?

我使用依赖注入,所以我创建使用类似代码的新实例如下:

DependencyResolver.Current.CreateInstance(Of IBusObject) 

我怎样才能获得ASP.NET MVC调用,而不是试图通过创建一个新的实例这种方法“新的“具体类的关键字?

+0

顺便说一句,你可能想看看使用轻量级视图模型发送到您的意见和接收信息。这使得更清晰的绑定,并允许您应用UI关注的验证属性。这些视图模型不应该包含任何DI,因此不需要创建自定义模型绑定器。你可以从你的POCO类映射到使用AutoMapper查看模型 – 2011-02-13 16:34:54

+0

@Rob我只是改变了我的业务对象来实现IDataErrorInfo来通过验证错误。如果我使用视图模型,是否知道是否需要将IDataErrorInfo实现移至视图模型? – adam0101 2011-02-14 17:13:26

+0

如果您采用视图模型方法,那么我认为这是进行验证的自然地方。 MVC框架将使用它来驱动模型联编程序中的绑定行为。 – 2011-02-15 09:05:41

回答

3

查看MVC源代码,它不会在创建模型类型的实例时使用依赖关系解析,因此您无法获得开箱即用的内容,但是您可以通过创建自己的模型联编程序是DependencyResolver意识到的。

2

您可以编写一个从默认模型联编程序派生的自定义模型联编程序,并覆盖CreateModel方法来提供您的自定义实例。