我想在不知道键值的情况下获得modelState中的所有错误消息。循环获取ModelState包含的所有错误消息。
我该怎么做呢?
我想在不知道键值的情况下获得modelState中的所有错误消息。循环获取ModelState包含的所有错误消息。
我该怎么做呢?
当前回答
var result = string.Join(',',ModelState.Values。SelectMany(v => . errors).Select(a=> . errormessage));
其他回答
使用字段名和错误消息获取错误
var errors = new List<ErrorDto>();
foreach (KeyValuePair<string, ModelStateEntry> kvp in context.ModelState)
{
if (kvp.Value.Errors.Count > 0)
{
errors.Add(new ErrorDto()
{
FieldName = kvp.Key,
ErrorMessage = string.Join(",", kvp.Value.Errors.Select(v => v.ErrorMessage))
});
}
}
误差模型
public class ErrorDto
{
public string FieldName { get; set; }
public string ErrorMessage { get; set; }
}
foreach (ModelState modelState in ViewData.ModelState.Values) {
foreach (ModelError error in modelState.Errors) {
DoSomethingWith(error);
}
}
请参见如何在ASP中获取模型状态错误的集合。净MVC ?。
用于将错误消息数组传递给View,可能通过Json:
messageArray = this.ViewData.ModelState.Values.SelectMany(modelState => modelState.Errors, (modelState, error) => error.ErrorMessage).ToArray();
var result = string.Join(',',ModelState.Values。SelectMany(v => . errors).Select(a=> . errormessage));
这个代码片段也很有用,它为您提供了一个包含错误消息的列表。
var errors = ModelState.Values。SelectMany(x => x. errors。Select(c => c. errormessage)).ToList();