【发布时间】:2011-02-13 16:02:34
【问题描述】:
我对 ASP.NET MVC 很陌生,所以我希望我的问题有意义。我使用 POCO 对象作为我的模型。据我了解,当提交表单时,MVC 可以创建我的业务对象的新实例并自动填充表单中的属性。
我使用依赖注入,因此我使用如下代码创建新实例:
DependencyResolver.Current.CreateInstance(Of IBusObject)
如何让 ASP.NET MVC 调用此方法,而不是尝试通过在具体类上使用“new”关键字来创建新实例?
【问题讨论】:
-
顺便说一句,您可能想看看使用轻量级视图模型来发送到您的视图并接收回信息。这使得绑定更清晰,并允许您应用 UI 关注的验证属性。这些视图模型不应涉及任何 DI,因此您无需创建自定义模型绑定器。您可以使用 AutoMapper 从 POCO 类映射到视图模型
-
@Rob 我刚刚更改了我的业务对象以实现 IDataErrorInfo 以传递验证错误。如果我使用视图模型,你知道我是否需要将 IDataErrorInfo 实现移动到视图模型?
-
如果您采用视图模型方法,那么我认为这是放置验证的自然位置。 MVC 框架将使用它来驱动模型绑定器中的绑定行为。
标签: asp.net-mvc dependency-injection inversion-of-control