Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC 3模型状态_Asp.net Mvc_Asp.net Mvc 3_Modelstate - Fatal编程技术网

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