2011-02-13 48 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方法來提供您的自定義實例。