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, vorherFileUploadResources.Document_Required. Beide Klassen liegen im NamespaceFMH.Komponente.FileUpload.Resources, dasusingbleibt also gleich. Alle übrigen Schlüssel, auchDocument_MaxFilesExceeded, bleiben inFileUploadResources: 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
DokumentListeViewModelweiter inFMH.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.