Table of Contents

Einstellungen mit ModuleSettingsPage

[ModuleSettingsPage] erzeugt eine Einstellungsseite. Die Felder verwenden dieselben Attribute wie Action-Eingaben:

[ModuleSettingsPage(Title = "Einstellungen", Audience = ModuleUiAudience.Portal)]
public sealed class MeineEinstellungen
{
    [Field(Label = "Lieblingslager", Order = 1)]
    public string? FavoriteWarehouse { get; init; }
}

Pro Modul ist eine Einstellungsseite möglich. Standardmäßig erscheint sie in den Paket-Einstellungen in Studio. Mit Audience = ModuleUiAudience.Portal erscheint sie im App-Portal.

Gespeicherte Werte lesen Sie über IModuleConfig:

var warehouse = await config.GetAsync("favoriteWarehouse", cancellationToken);

Portal-Einstellungen gelten pro Benutzer. Werte mit [SecretField] werden dagegen modulbezogen gespeichert und über ISecrets gelesen. Sie lassen sich auch unter Secrets in Studio verwalten.

Werte lesen und prüfen

Als Schlüssel dient der serialisierte Property-Name, hier favoriteWarehouse. GetAsync liefert für fehlende Werte null; GetRequiredAsync löst einen Fehler aus. Gespeicherte Änderungen sind beim nächsten Lesen verfügbar.

Für Pflichtfelder oder Wertebereiche verwenden Sie wie bei Action-Eingaben [Required] beziehungsweise [Range]. Diese Attribute prüfen die Eingabe beim Speichern.