7 Stimmen

ASP.NET MVC 3: Validierung erhält Nachrichtenliste

Ich habe das hier:

public class Customer
{
    [DisplayName("Lastname"), StringLength(50)]
    [Required(ErrorMessage="My Error Message")]
    [NotEmpty()]
    public override string LastName { get; set; }

    [DisplayName("Firstname"), StringLength(50)]
    [Required(ErrorMessage="My Error Message 2")]
    [NotEmpty()]
    public override string FirstName{ get; set; }
}

In der Steuerung mache ich dies:

if (!TryValidateModel(myCustomer))
{
  //HERE
  ....
}

Wo "HIER" steht, möchte ich alle Fehlermeldungen erhalten.

Einige Fallbeispiele :

  1. Wenn "LastName" fehlt, würde ich gerne " Meine Fehlermeldung "
  2. Wenn beide fehlerhaft sind, möchte ich eine Liste (oder anderes) mit den Werten " Meine Fehlermeldung " und " Meine Fehlermeldung 2 "

Irgendeine Idee?

Danke,

16voto

Darin Dimitrov Punkte 990883

Sie können eine Liste aller Fehler mit dem jeweiligen Feld und der entsprechenden Meldung erhalten, etwa so:

var errors = ModelState
    .Where(x => x.Value.Errors.Count > 0)
    .Select(x => new { x.Key, x.Value.Errors })
    .ToArray();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X