Dynamische Validierung auf MVC 2
-
28-09-2019 - |
Frage
Das funktioniert
[MetadataType(typeof(Area_Validation))]
public partial class Area
{
...
}
public class Area_Validation
{
[Required(ErrorMessage = "Please add this field.")]
public int Email { get; set; }
[Required(ErrorMessage = "Please add this field")]
public string Name { get; set; }
}
aber wie , wenn Area_Validation
ist dynamisch erstellt ? zum Beispiel Abonnement Felder , die auf Back-End kann durch den Benutzer und am Ende wie folgt erstellt werden:
Wie kann ich die Metadaten auf jedes Feld für Auto-Validierung
Zur Zeit bin ich zu tun:
public class SubscriberFormViewModel
{
public List<SubscriberFieldModel> Fields { get; private set; }
public Calendar Calendar { get; private set; }
public Company Company { get; private set; }
public SubscriberFormViewModel()
{
// TODO: This is only for testing while validation is not set
}
public SubscriberFormViewModel(Decimal calendarId)
{
if (calendarId > 0)
{
SubscribersRepository db = new SubscribersRepository();
Calendar calendar = db.GetCalendarById(calendarId);
Company company = db.GetCompanyById(calendar.company_id);
this.Fields = db.FindAllSubscriberFieldsByCalendar(calendarId);
this.Calendar = calendar;
this.Company = company;
}
else
this.Fields = new List<SubscriberFieldModel>();
}
}
und ich möchte die Metadaten in allen Fields
Eigenschaft festlegen
Mit anderen Worten, diese Fields
werden aus der Datenbank gefüllt und mehrere Typen haben kann, kann eine string
sein, number
, dropdown
, etc ... irgendwie wie MailChimp Felder Eigenschaften:
gibt es eine Möglichkeit, dies programmaticaly zu tun, oder ich brauche erstellen ein jQuery-Plugin, um zu validieren und Stopp mit Verwendung Validierung von MVC2?
Danke
Lösung
Ich denke nicht, daß Sie diese mit Hilfe von Data Annotations Attribute tun können.
Es ist ein Projekt, in Codeplex, genannt Fluent Validation durch die Sie Validierungsregeln in einer fließenden Art und Weise hinzufügen Verwendung von .NET-Code. Ich habe nie das Projekt verwendet, aber es scheint, dass vielleicht haben Sie in Ihrem Fall mit dynamisch erzeugten Objekten helfen können.
Hope, es hilft!
Andere Tipps
Eigentlich kann man mehrere Validierungsszenarien machen, eine pro-Typ (oder mehr pro Art, wenn Sie benötigen). In Dann ist diese Validierungsregeln auf Art Schöpfung. Wenn Sie überprüfen möchten, können Sie Vorlage Validate-Methode aufrufen, dass, wenn diese Regeln überprüfen, und wenn nicht - werden Fehler Model hinzufügen, dass Sie sich auf Front-End zu zeigen, in der Lage.
Eigentlich ist es nicht, dass profitable alle Attribute hinzuzufügen, wie Attribute pro ist, dass Sie Ihre Art mit ihnen dekorieren können. Wenn Sie einige dynamischen Dinge tun, die bessere `d einige dynamische Art und Weise Validierung hinzuzufügen hat.