Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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
C# 如何更新ModelStateDictionary中的错误值?_C#_Asp.net Mvc_Asp.net Mvc 3_Model View Controller - Fatal编程技术网

C# 如何更新ModelStateDictionary中的错误值?

C# 如何更新ModelStateDictionary中的错误值?,c#,asp.net-mvc,asp.net-mvc-3,model-view-controller,C#,Asp.net Mvc,Asp.net Mvc 3,Model View Controller,我正在从事一个ASP.NET MVC项目,希望能够在ModelStateWrapper中动态更新错误消息,但问题是没有为特定键设置方法,并且字典是只读的 var x = new ModelStateDictionary(this.ModelState); foreach (var item in x.modelState) { if (item.Value.Errors.Count > 0) { foreach (var y in err.errors)

我正在从事一个ASP.NET MVC项目,希望能够在ModelStateWrapper中动态更新错误消息,但问题是没有为特定键设置方法,并且字典是只读的

var x = new ModelStateDictionary(this.ModelState);

foreach (var item in x.modelState)
{
    if (item.Value.Errors.Count > 0)
    {
        foreach (var y in err.errors)
        {
            if (item.Key == y.Key)
            {
                //Some magic needed here to update error name with y.Key                                                
            }
        }
    }
}

有什么办法可以做到这一点吗

您可以使用以下方法将错误添加到模型状态字典中:

ModelState.AddModelError("ErrorKey", "Error Message");
要更改错误,可以执行以下操作:

ModelState.Remove("ErrorKey");
ModelState.AddModelError("ErrorKey", "New Error Message");

这只是一个想法,但您总是可以尝试使用反射来执行私有setter和方法,尽管这可能令人讨厌。