- У меня есть приложение ASP.NET Core. Я пытаюсь записать в журнал ошибки проверки на стороне сервера.
- Если проверка модели ASP.NET Core обнаруживает какую-либо ошибку в любом поле веб-формы, то ModelState.IsValid является ложным.
- Каждое поле веб-формы указано в ModelState.Values.
- Если «Значение» содержит одну или несколько ошибок, то значение .Errors.Count > 0
- Я хочу регистрировать а) имя поля веб-формы («ключ» значения) и б) каждое сообщение об ошибке для этого поля.
- Я хотел бы включить всю эту информацию в одну строку (т. е. в одну «строку» C#).
Код: Выделить всё
// LOG:
// 2022-10-24 09:37:29.0909|Error|ServiceMenu.Q255: The value '' is invalid.
// 2022-10-24 09:37:35.4096|Error|ServiceMenu.Q265: The value '' is invalid.
if (!ModelState.IsValid)
{
foreach (var k in ModelState.Keys)
{
var v = ModelState[k];
if (v.Errors.Count > 0)
{
string s = k + ": ";
for (int i=0; i < v.Errors.Count - 1; i++)
s += v.Errors[i].ErrorMessage + ", ";
s += v.Errors[v.Errors.Count - 1].ErrorMessage;
_logger.LogError(s);
}
}
return Page();
}
Код: Выделить всё
2022-10-24 09:37:29.0909|Error|ServiceMenu.Q255: The value '' is invalid.
2022-10-24 09:37:35.4096|Error|ServiceMenu.Q265: The value '' is invalid.
Подробнее здесь: https://stackoverflow.com/questions/741 ... op-in-linq