Я пытаюсь вернуть результат JSON в одном из моих методов ASP.NET MVC, как показано ниже:
Dictionary<string, List<System.ComponentModel.DataAnnotations.ValidationResult>> resp =
MyMethod(params);
return Json(new
{
result = res,
message = string.Join(";", resp.Select(v => v.Value.First().ErrorMessage))
}, JsonRequestBehavior.AllowGet);
resp
словарь может быть пустым или нет. resp
также может быть null
. Когда оно не пустое и не null
, пара ключ-значение может содержать null
для значения, например, key = "errors", но его соответствующее значение установлено на null
. Поэтому, учитывая это, я хочу, чтобы поле message
содержало разделенный точкой с запятой список, содержащий все значения словаря, отличные от null
. Если соответственно пусто, null
, или все значения словаря null
, «сообщение» будет содержать пустую строку.
Примеры, возможные сценарии:
- Когда респпустая строка или сообщение NULL => будет пустой строкой
- Если соответственно не пусто / пусто, примеры:
- {"errors", "blabla"}, {"warn",NULL} => сообщение будет "blabla"
- {"errors", "blabla"}, {"errors", "blablabla"}, {"warn", NULL} => сообщение будет "blabla"; blablabla "
- {" errors ", NULL}, {" warn ", NULL} => сообщение будет пустой строкой
Как я могусделать это, используя лямбда-выражение для получения этих результатов?