Validatiebericht openen van model op controller

Hoe kan het validatiebericht van een toegangsmodel via de variabele ModelState op de controller?

0

2 antwoord

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;
    }
}
1
toegevoegd
@SLaks, ja, afhankelijk van de specifieke behoeften zijn veel dingen mogelijk.
toegevoegd de auteur Darin Dimitrov, de bron
Of u kunt Join() allemaal.
toegevoegd de auteur SLaks, de bron

Controleer de ModelState ["PropertyName"]. Fouten verzameling.

0
toegevoegd