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.