2012-01-30 149 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? 如果你正在使用依赖注入,请给我看你的注射配置,这样我可以给你一个更好的答案。