PartialBuilder

Der PartialBuilder rendert eine Razor-Partial als IBuilder und gibt deren HTML zurück. Aufruf über @Html.Fmh(new PartialBuilder(...)) — nützlich, um eine Partial als wiederverwendbare IBuilder-Konstante bereitzustellen (z. B. die Head-/Body-Includes in BasisAssetKonstanten).

PartialBuilder mit Modell

Reicht ein Modell an die Partial weiter (zweiter Konstruktor-Parameter).

@Html.Fmh(new PartialBuilder(
    "~/Areas/Infrastruktur/Views/Demo/_PartialBuilderInhaltMitModell.cshtml",
    new PartialBuilderBeispielModell
    {
        Titel = "Mit Modell",
        Beschreibung = "Der PartialBuilder reicht dieses Modell an die Partial weiter.",
    }))

Darstellung

Mit Modell
Der PartialBuilder reicht dieses Modell an die Partial weiter.

Der PartialBuilder (FMH.Komponente.Infrastruktur.Mvc) ist ein schlanker IBuilder, der eine Razor-Partial rendert und ihr HTML als HtmlString zurückgibt. Damit lässt sich eine Partial überall dort einbinden, wo ein IBuilder erwartet wird — insbesondere über @Html.Fmh(...) — statt über @await Html.PartialAsync(...).

@Html.Fmh(new PartialBuilder("~/Areas/Infrastruktur/Views/Demo/_PartialBuilderInhalt.cshtml"))

Der eigentliche Nutzen: eine Partial als wiederverwendbare IBuilder-Konstante bereitstellen, die nicht weiss, in welcher View sie später gerendert wird — so wie BasisAssetKonstanten.HeadIncludes / BodyIncludes.

Konstruktor

Parameter Erklärung
partialName Name bzw. Pfad der Partial-View, z. B. ~/Areas/.../_Inhalt.cshtml
model (optional) Modell für die Partial. null (Standard) rendert die Partial ohne Modell; sonst wird es an die Partial weitergereicht

Verhalten (Build)

  • Benötigt zwingend den IHtmlHelper (View-Kontext). Wird er nicht übergeben, wirft Build eine InvalidOperationException — beim Aufruf über @Html.Fmh(...) ist der Helper automatisch vorhanden.
  • Rendert die Partial über helper.Partial(partialName) bzw. helper.Partial(partialName, model) und gibt das Ergebnis als HtmlString zurück (roh einbettbar, nicht doppelt kodiert).
  • Synchron (nutzt helper.Partial, nicht PartialAsync) — passend zum synchronen IBuilder.Build-Vertrag.

Hinweise

  • Kein Fluent-API wie Button/Icon/Dialog — bewusst minimal, da nur eine Partial gekapselt wird.
  • partialName und model sind unveränderlich (im Konstruktor gesetzt) — der Builder ist damit als statische Konstante gefahrlos wiederverwendbar, solange die Partial zustandslos rendert.

PartialBuilder ohne Modell

Rendert eine Partial über new PartialBuilder(partialName).

@Html.Fmh(new PartialBuilder("~/Areas/Infrastruktur/Views/Demo/_PartialBuilderInhalt.cshtml"))

Darstellung

Dieser Inhalt stammt aus der Partial _PartialBuilderInhalt.cshtml und wurde über den PartialBuilder gerendert.

Der PartialBuilder (FMH.Komponente.Infrastruktur.Mvc) ist ein schlanker IBuilder, der eine Razor-Partial rendert und ihr HTML als HtmlString zurückgibt. Damit lässt sich eine Partial überall dort einbinden, wo ein IBuilder erwartet wird — insbesondere über @Html.Fmh(...) — statt über @await Html.PartialAsync(...).

@Html.Fmh(new PartialBuilder("~/Areas/Infrastruktur/Views/Demo/_PartialBuilderInhalt.cshtml"))

Der eigentliche Nutzen: eine Partial als wiederverwendbare IBuilder-Konstante bereitstellen, die nicht weiss, in welcher View sie später gerendert wird — so wie BasisAssetKonstanten.HeadIncludes / BodyIncludes.

Konstruktor

Parameter Erklärung
partialName Name bzw. Pfad der Partial-View, z. B. ~/Areas/.../_Inhalt.cshtml
model (optional) Modell für die Partial. null (Standard) rendert die Partial ohne Modell; sonst wird es an die Partial weitergereicht

Verhalten (Build)

  • Benötigt zwingend den IHtmlHelper (View-Kontext). Wird er nicht übergeben, wirft Build eine InvalidOperationException — beim Aufruf über @Html.Fmh(...) ist der Helper automatisch vorhanden.
  • Rendert die Partial über helper.Partial(partialName) bzw. helper.Partial(partialName, model) und gibt das Ergebnis als HtmlString zurück (roh einbettbar, nicht doppelt kodiert).
  • Synchron (nutzt helper.Partial, nicht PartialAsync) — passend zum synchronen IBuilder.Build-Vertrag.

Hinweise

  • Kein Fluent-API wie Button/Icon/Dialog — bewusst minimal, da nur eine Partial gekapselt wird.
  • partialName und model sind unveränderlich (im Konstruktor gesetzt) — der Builder ist damit als statische Konstante gefahrlos wiederverwendbar, solange die Partial zustandslos rendert.