gpt4 book ai didi

c# - 如何使用字段名称检索错误消息(服务器端)?

转载 作者:太空宇宙 更新时间:2023-11-03 22:38:25 25 4
gpt4 key购买 nike

我得到这样的错误列表:{ 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"]}

最佳答案

ModelState可以像字典一样使用。它有一个 ModelState.Keys告诉您字段名称的集合。

IDictionary<string, string[]> errorsByField = new Dictionary<string, string[]>();

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<input> 的名称由 ModelBinder 绑定(bind),即这对应于 ViewModel 中的属性名称。这不是 [DisplayName]这个属性。要获取 DisplayName,您必须在 ViewModel 上使用反射来检索此属性的属性值,然后使用 ResourceManager 转换它.

关于c# - 如何使用字段名称检索错误消息(服务器端)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53720392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com