2012-01-30 192 views
1

好吧,我有一個問題,ModelState錯誤沒有映射到正確的屬性。ASP.NET MVC 3 ModelState

讓我看看我能否解釋這一點。

我有一個視圖模型,像這樣:

public class MyViewModel 
{ 
    public string Prop1 {get;set;} 
    public string Prop2 {get;set;} 
    .... 
} 

在我看來,我有了這種類型的,我有一個EditorTemplate集合的模型。因此,它產生MyViewModels[0].Prop1MyViewModels[1].Prop1

問題是,當我通過一個接口我已經叫IValidationDictionary有大約模型狀態的包裝設置在我的服務層ModelState的錯誤,它並不重視錯誤到視圖中的正確行,而不是模型的末尾,如Prop1

編輯

這裏是ModelStateWrapper(VB - 對不起!)

Public Class ModelStateWrapper 
    Implements IValidationDictionary 

#Region "Private Members/Properties" 

    Private modelState As ModelStateDictionary 

    Public ReadOnly Property IsValid As Boolean Implements IValidationDictionary.IsValid 
     Get 
      Return modelState.IsValid 
     End Get 
    End Property 

#End Region 

#Region "Constructor(s)" 

    Public Sub New(modelState As ModelStateDictionary) 
     Me.modelState = modelState 

    End Sub 

#End Region 

#Region "Methods" 

    Public Sub AddError(key As String, message As String) Implements IValidationDictionary.AddError 
     modelState.AddModelError(key, message) 

    End Sub 

#End Region 

End Class 
+0

沒有看到圍繞模型狀態的任何代碼,你如何期待任何人能夠回答爲什麼它不能正常工作? – Dismissile 2012-01-30 21:56:49

回答

0

聽起來像是你可以使用依賴注入和注射ModelStateDictionary到您的ModelStateWrapper類,這又是注入你的服務層

我可以只能猜測無論是越來越注入是不使用當前的HTTP請求的Controller class ModelState property (ModelStateDictionary)

你任何機會初始化一個新實例的ModelStateDictionary並將其傳遞到您的ModelStateWrapper? 如果你正在使用依賴注入,請給我看你的注射配置,這樣我可以給你一個更好的答案。