我得到这样的错误列表:{ error: [ "Email is required", "First Name is required"] }
我需要如何修改它,以获取包含字段名称的列表?
public static IEnumerable ExtractErrorMessages(this ModelStateDictionary modelState)
{
return modelState.Values.SelectMany(m => m.Errors).Select(e => e.ErrorMessage).ToList();
}
结果必须是这样的:{"FirstName": [ "First Name is required"], "Email": [ "Email is required"]}
Mô hìnhTrạng thái
可以像字典一样使用。它有一个 ModelState.Keys
告诉您字段名称的集合。
IDictionary errorsByField = new Dictionary();
foreach (var key in ModelState.Keys) {
if (ModelState[key].Errors.Any()) {
var errors = ModelState[key].Errors.Select(e => e.ErrorMessage).ToArray();
errorsByField.Add(key, errors);
}
}
请注意 Keys
Đúng
的名称由 ModelBinder 绑定(bind),即这对应于 ViewModel 中的属性名称。这不是 [DisplayName]
这个属性。要获取 DisplayName,您必须在 ViewModel 上使用反射来检索此属性的属性值,然后使用 ResourceManager
转换它.
Tôi là một lập trình viên xuất sắc, rất giỏi!