C# 如何更新ModelStateDictionary中的错误值?
我正在从事一个ASP.NET MVC项目,希望能够在ModelStateWrapper中动态更新错误消息,但问题是没有为特定键设置方法,并且字典是只读的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)
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和方法,尽管这可能令人讨厌。