Ваш FirstOrDefault не нужен, потому что вы получите NullReferenceException при доступе к ErrorMessage.Вы можете просто использовать First ().
В любом случае, я не смог найти никакого встроенного решения.Вместо этого я создал метод расширения:
public static class ExtMethod
{
public static string GetErrorMessageForKey(this ModelStateDictionary dictionary, string key)
{
return dictionary[key].Errors.First().ErrorMessage;
}
}
, который работает следующим образом:
ModelState.GetErrorMessageForKey("error");
Если вам нужна лучшая обработка исключений или поддержка нескольких ошибок, это легкочтобы расширить ...
Если вы хотите, чтобы это было короче, вы можете создать метод расширения для ViewData ...
public static class ExtMethod
{
public static string GetModelStateError(this ViewDataDictionary viewData, string key)
{
return viewData.ModelState[key].Errors.First().ErrorMessage;
}
}
и использования:
ViewData.GetModelStateError("error");