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.