Asp.net mvc ASP.NET MVC 3模型状态
好的,我有一个问题,Asp.net mvc ASP.NET MVC 3模型状态,asp.net-mvc,asp.net-mvc-3,modelstate,Asp.net Mvc,Asp.net Mvc 3,Modelstate,好的,我有一个问题,ModelState错误没有映射到正确的属性 让我看看能不能解释一下 我有这样一个ViewModel: public class MyViewModel { public string Prop1 {get;set;} public string Prop2 {get;set;} .... } 在我看来,我有一个模型,它有一个这种类型的集合,我有一个EditorTemplate。因此它生成MyViewModels[0].Prop1,MyViewMod
ModelState
错误没有映射到正确的属性
让我看看能不能解释一下
我有这样一个ViewModel:
public class MyViewModel
{
public string Prop1 {get;set;}
public string Prop2 {get;set;}
....
}
在我看来,我有一个模型,它有一个这种类型的集合,我有一个EditorTemplate
。因此它生成MyViewModels[0].Prop1
,MyViewModels[1].Prop1
,等等
问题是,当我通过名为IValidationDictionary
的接口在我的服务层中的ModelState
上设置错误时,它不会将错误附加到视图中的正确行,而是作为Prop1
附加到模型的末尾
编辑
这是ModelStateWrapper(VB-对不起!)
听起来您可能正在使用依赖项注入,并将ModelStateDictionary
注入到您的ModelStateWrapper
类中,该类将再次注入到您的服务层中
我只能猜测,任何被注入的东西都是没有使用当前HTTP请求的
您是否有可能初始化ModelStateDictionary
的新实例,并将其传递到您的ModelStateWrapper
?
如果您使用的是依赖项注入,请向我展示您的注入配置,以便我能给您一个更好的答案。在没有看到任何围绕模型状态的代码的情况下,您如何期望任何人能够回答它为什么不能正常工作?
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