Validierung – Referenz

Alle Attribute des Pakets auf einen Blick: was sie prüfen, woher die Meldung kommt und was beim Referenzieren des Pakets zu wissen ist.

Die Rubrik zeigt die Validierungs-Attribute der Basis, je Attribut eine Seite mit Formular und laufender Prüfung. Diese Referenz sagt, welche es gibt, was sie prüfen und aus welchem Paket sie kommen.

Die Attribute auf einen Blick

Attribut Namespace Prüfung Standardmeldung
[DatumBereich] Ui.Validation Server und Browser ValidierungResources.ValidationDateTimeRange
[Email] Ui.Validation Server und Browser ValidierungResources.ValidationEmail
[Ganzzahl] Ui.Validation Server und Browser ValidierungResources.ValidationInt
[NoHtml] Ui.Validation Server und Browser ValidierungResources.ValidationHtml
[Nummer] Ui.Validation Server und Browser ValidierungResources.ValidationDecimal
[RequiredIf] Ui.Validation.DataAnnotation Server und Browser keine, ErrorMessage setzen
[RequiredIfContains] Ui.Validation.DataAnnotation Server und Browser keine, ErrorMessage setzen
[CheckboxRequired] Ui.Validation.DataAnnotation nur Server keine, ErrorMessage setzen
[UniqueId] Ui.Validation.DataAnnotation keine, Marker für die HTML-id –

Der Namespace ist jeweils FMH.Komponente.Basis. davor, also FMH.Komponente.Basis.Ui.Validation beziehungsweise …Ui.Validation.DataAnnotation.

Im selben Namespace liegen die Marker-Attribute ohne eigene Prüfung, die den Templates die Darstellung vorgeben: [AdditionalMetadata], [DisplayAlignment], [DisplayFromViewModel], [DisplaySupportsHtml], [HelpText] und [EmptyEntry].

Aus welchem Paket die Attribute kommen

Die Attribute liegen seit September 2026 in einem eigenen Paket, FMH.Komponente.Basis.Validierung. FMH.Komponente.Basis verweist darauf: Wer die Basis referenziert, bekommt sie unverändert mit, und kein using ändert sich, die Typen haben ihren Namespace behalten.

liegt in was
FMH.Komponente.Basis.Validierung die Attribute, der AdditionalMetadataProvider, die Meldungstexte in ValidierungResources
FMH.Komponente.Basis die Adapter für die Prüfung im Browser (wwwroot/js/validation/…), die EditorTemplates, AddFmhWidgetOptions()

Zwei Dinge fallen beim Umstieg auf:

  • Die fünf Meldungstexte heissen neu ValidierungResources.Validation… im Namespace FMH.Komponente.Basis.Resources, vorher _FmhWebMvc.Validation…. Anzupassen ist das nur, wenn die Anwendung einen dieser Texte selbst liest.
  • Quellkompatibel, aber nicht binärkompatibel. Eine Assembly, die vor der Auftrennung übersetzt wurde, sucht die Attribute weiter in FMH.Komponente.Basis. Alle FMH-Pakete gemeinsam heben und einmal vollständig neu bauen, in Visual Studio «Rebuild Solution».

Nur die Attribute referenzieren

Ein Projekt, das nur serverseitig prüfen will, etwa ein reines Modell- oder Dienste-Projekt ohne Views, kann allein das Validierungs-Paket ziehen:

<ItemGroup>
  <PackageReference Include="FMH.Komponente.Basis.Validierung" Version="..." />
</ItemGroup>

Es kommt ohne V8, WebOptimizer, Serilog und WebSecurity, dafür fehlt gegenüber dem Regelfall FMH.Komponente.Basis:

  • Die Adapter für den Browser. Geprüft wird erst beim Absenden; während der Eingabe erscheint keine Meldung. [CheckboxRequired] verhält sich ohnehin so.
  • Die EditorTemplates. Html.EditorFor rendert das ASP.NET-Standardfeld ohne FMH-Gerüst, und damit auch ohne die Meldungs- und Hilfetext-Plätze, welche die Attribute füllen.
  • AddFmhWidgetOptions(). Der Metadaten-Anbieter ist dann selbst einzutragen, sonst bleiben [AdditionalMetadata] und die Marker-Attribute wirkungslos. Wie, steht unter Vorbedingungen.

Welche Pakete es gibt und was sie voneinander verlangen, steht im Bereich Wie funktionierts unter Pakete.