Referenz
Der Inhalt des Pakets auf einen Blick: was drin liegt, wo es läuft und warum das Paket ohne eigene Beispiele auskommt.
Das Paket bringt den Namen des EditorTemplates Richtext mit, damit ein ViewModel-Projekt das
Template wählen kann, ohne die Razor Class Library zu referenzieren. Das Template selbst, Quill und
das Skript des Editors liegen in FMH.Komponente.RichText.
Was drin liegt
| Namespace | Typ | Wert |
|---|---|---|
UiEditor |
RichText.Richtext |
"Richtext", der Dateiname von Views/Shared/EditorTemplates/Richtext.cshtml |
[UIHint(UiEditor.RichText.Richtext)]
public string Beschreibung { get; set; }
Der Wert schreibt sich klein, weil die Datei so heisst. Eine Umbenennung wäre eine brechende Änderung.
Warum dieses Paket keine Beispiele hat
Ein Beispiel muss etwas zeigen, und zeigen kann dieses Paket nichts. Es enthält eine Konstante, sonst nichts: kein Template, kein Skript, keine Stile und kein Validierungs-Attribut. Der Name folgt dem Muster der Sub-Komponenten: Was ein ViewModel von einer Komponente braucht, liegt in deren Validierungspaket. Kommen eigene Attribute des RichText dazu, gehören sie hierher und bekommen dann eigene Beispiele.
Die Prüfregeln, die an einem Richtext-Feld heute stehen, kommen von ausserhalb:
| Regel | Herkunft | wo sie gezeigt wird |
|---|---|---|
Pflichtfeld ([Required]) |
.NET | RichText › Richtext, Beispiel «Pflichtfeld» |
Beschriftung ausblenden ([AdditionalMetadata(UiMetadata.Basis.ShowLabel, false)]) |
FMH.Komponente.Basis.Validierung |
RichText › Richtext, Beispiel «Ohne Beschriftung» |
| Bereinigung des HTML | FMH.Komponente.Basis, über das Template |
RichText › Richtext, Anleitung, und Basis › HtmlSanitizer |
Warum das Paket trotzdem geprüft ist
1. Die Demos wählen das Template über genau diese Konstante. Die WebUI verweist auf
FMH.Komponente.RichText, und das verweist auf FMH.Komponente.RichText.Validierung. Alle drei
Beispiele unter RichText › Richtext («Grundfall», «Ohne Beschriftung», «Pflichtfeld») tragen
[UIHint(UiEditor.RichText.Richtext)] an ihrem ViewModel. Stimmte der Wert nicht mit dem
Dateinamen überein, stünde dort ein gewöhnliches Textfeld statt des Editors.
2. Die Tests des Templates laufen über dieselbe Konstante. RichtextTests in
FMH.Komponente.RichText.Tests rendert das Feld über EditorFor, also mit dem Template aus dem
UIHint des Testmodells, und das ist UiEditor.RichText.Richtext. Die fünf Tests (bereinigter Wert
im versteckten Feld, Editor mit Nonce, Pflichtfeld, ausgeblendete Beschriftung, Rückweg durch den
Model-Binder) schlagen fehl, sobald Konstante und Dateiname auseinanderlaufen.
3. Beim Umzug hat sich kein Namespace geändert. Die Konstante lag schon vorher im gemeinsamen
Namespace UiEditor. Dass Demos und Tests mit unveränderten using übersetzen, belegt das bei
jedem Build.
4. Es gibt nichts einzurichten und nichts, was fehlen kann. Das Paket hat keine Abhängigkeit, nicht einmal einen Framework-Verweis. Was ausfallen könnte, liegt ausserhalb des Pakets und steht auf der Seite Vorbedingungen.
Aus welchem Paket der Name kommt
UiEditor.RichText liegt seit September 2026 in einem eigenen Paket,
FMH.Komponente.RichText.Validierung. FMH.Komponente.RichText verweist darauf: Wer die Komponente
referenziert, bekommt den Namen unverändert mit, und kein using ändert sich.
| liegt in | was |
|---|---|
FMH.Komponente.RichText.Validierung |
UiEditor.RichText |
FMH.Komponente.RichText |
das EditorTemplate Richtext.cshtml, Quill unter wwwroot/lib/quill, das Skript jquery-fmh-richtext.js, die Bundle-Anmeldungen |
Quellkompatibel, aber nicht binärkompatibel. Eine Konstante wird beim Übersetzen in die aufrufende Assembly kopiert, ein bereits gebautes ViewModel-Projekt läuft also weiter. Trotzdem gilt wie bei den übrigen Sub-Komponenten: alle FMH-Pakete gemeinsam heben und einmal vollständig neu bauen.
Nur den Namen referenzieren
Ein ViewModel-Projekt, das nur [UIHint(UiEditor.RichText.Richtext)] setzt, kann allein dieses
Paket ziehen:
<ItemGroup>
<PackageReference Include="FMH.Komponente.RichText.Validierung" Version="..." />
</ItemGroup>
Es kommt ohne jede weitere Abhängigkeit. Was dabei fehlt: das Template, Quill und das Skript, also
alles, was rendert. Die Anwendung, die das ViewModel anzeigt, referenziert deshalb
FMH.Komponente.RichText.
Welche Pakete es gibt und was sie voneinander verlangen, steht im Bereich Wie funktionierts unter Pakete.