Validierung – Referenz

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

Das Paket bringt die DataAnnotation-Attribute des Datei-Uploads mit, dazu die beiden Modelle, die sie lesen. Gerendert werden die Beispiele mit den EditorTemplates DokumentListe und IFormFile aus FMH.Komponente.FileUpload; gezeigt wird hier aber das Attribut.

Die Attribute auf einen Blick

Attribut Prüfung Meldung
[DocumentUploadRequired] mindestens ein Dokument, serverseitig FileUploadValidierungResources.Document_Required
[DocumentUploadRequiredIf] dasselbe, aber nur wenn eine andere Eigenschaft den Zielwert hat FileUploadValidierungResources.Document_Required
[MaxUploadableFiles] keine Prüfung; setzt die Obergrenze der Ablagefläche im Browser eigene ErrorMessage, wahlweise über ResourceType

Alle drei liegen im Namespace FMH.Komponente.FileUpload.Ui.Validation.DataAnnotation, MaxFilesDto in ….Dto.

Was der Endpunkt selbst prüfen muss: [MaxUploadableFiles] steuert nur die Ablagefläche. Wie viele Dokumente tatsächlich ankommen, prüft die POST-Action.

Aus welchem Paket die Attribute kommen

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

liegt in was
FMH.Komponente.FileUpload.Validierung die drei Attribute, MaxFilesDto, die Modelle DokumentListeViewModel und DokumentEintrag, der Meldungstext in FileUploadValidierungResources
FMH.Komponente.FileUpload die EditorTemplates DokumentListe und IFormFile, das Skript jquery-fmh-fileupload.js, DokumentViewModel und die Erweiterungen, über die die Templates die Attribute abfragen

Der Namespace FMH.Komponente.FileUpload.Models verteilt sich damit auf zwei Assemblies, DokumentViewModel bleibt bei den Views. Für den Aufrufer ist das unsichtbar.

Zwei Dinge fallen beim Umstieg auf:

  • Der Meldungstext heisst neu FileUploadValidierungResources.Document_Required, vorher FileUploadResources.Document_Required. Beide Klassen liegen im Namespace FMH.Komponente.FileUpload.Resources, das using bleibt also gleich. Alle übrigen Schlüssel, auch Document_MaxFilesExceeded, bleiben in FileUploadResources: Diese Meldung setzt nicht das Attribut, sondern das EditorTemplate.
  • Quellkompatibel, aber nicht binärkompatibel. Eine Assembly, die vor der Auftrennung übersetzt wurde, sucht die Attribute und DokumentListeViewModel weiter in FMH.Komponente.FileUpload. Alle FMH-Pakete gemeinsam heben und einmal vollständig neu bauen.

Nur die Attribute referenzieren

Ein Projekt, das nur die Modelle und die serverseitige Prüfung braucht, etwa ein Dienste-Projekt ohne Views, kann allein das Validierungs-Paket ziehen:

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

Es kommt ohne Tabelle, PDFViewer, Basis, Infrastruktur und Serilog. Was dabei fehlt: die Ablagefläche und die Dokumentliste, also beide EditorTemplates samt Skript. An Prüfung geht nichts verloren, denn einen Adapter für den Browser gibt es zu diesen Attributen ohnehin nicht.

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