string message = ModelState["SomeProperty"].Errors[0].ErrorMessage;
Natuurlijk moeten er controles worden uitgevoerd, omdat elk van die accessors gewoon nul kan retourneren. Maar als u er absoluut zeker van bent dat SomeProperty
ten minste één foutmelding heeft in de modelstaat, is dat OK.
Die controles kunnen natuurlijk worden ingekapseld in een uitbreidingsmethode, zodat u in uw controller eenvoudig kunt:
string message = ModelState.GetFirstErrorMessageFor("SomeProperty");
Zoals dit bijvoorbeeld:
public static class ModelStateExtensions
{
public static string GetFirstErrorMessageFor(this ModelStateDictionary modelState, string property)
{
ModelState value;
if (!modelState.TryGetValue(property, out value))
{
return string.Empty;
}
return (value.Errors.FirstOrDefault() ?? new ModelError("")).ErrorMessage;
}
}