2012-10-11 89 views
0

我有一個問題,我正在努力解決。MVC ModelState and Collections

我有一個網格(表格)類型的佈局,將包含ViewModels的集合。

我希望能夠驗證這些ViewModels然後把給定屬性紅色的細胞,如果它包含錯誤:

 Prop 1 | Prop 2 | Prop 3 | Prop 4 
Row 1 x |  | x | 
Row 2 x | x |  | x 
Row 3  | x | x | 

X =紅細胞

我的問題是,我該怎麼辦這使用從服務層填充的模型狀態?

我正在使用AutoMapper將域對象(PO​​CO)映射到ViewModels,其中POCO由服務層提供。

所以基本上:

控制器 - >服務 - >返回域對象 - >地圖來查看模型 - >遞給查看。

業務邏輯位於服務層,我正在考慮將模型狀態包裝器傳遞給服務,以便用來自域對象的錯誤填充模型狀態。

我會假設某種關鍵?

我知道模型狀態是每個產權嗎?

謝謝!

+0

你能解釋一下「使用從服務層填充的模型狀態」是什麼意思嗎?你在使用特定的語言/圖書館嗎? – loveToCode

+0

如果你更具體一點,這可能會有所幫助。 「物體」是什麼? –

+0

更新了我的問題。 – Sam

回答

1

這不是很清楚你是如何爲您服務層,但在這一天在你的ModelState以下項目必須有與之關聯的錯誤,結束執行驗證:

Items[0].Prop1 
Items[0].Prop3 
Items[1].Prop1 
Items[1].Prop2 
Items[1].Prop4 
Items[2].Prop2 
Items[2].Prop3 

哪裏Items是名稱您的視圖模型上的集合屬性。所以你必須用這些鍵把這些錯誤添加到ModelState中。