CheckboxRequired

Das CheckboxRequired-Attribut verlangt eine angekreuzte Checkbox (z. B. Zustimmung zu Bedingungen). Serverseitig wirksam; ohne eigene ErrorMessage bliebe die Meldung leer.

Angekreuzte Checkbox

Verlangt eine angekreuzte Checkbox (z. B. Zustimmung).

@model CheckboxRequiredBeispielViewModel

<form asp-area="Basis" asp-controller="CheckboxRequired" asp-action="Index" method="post">
    <div asp-validation-summary="All" class="text-danger"></div>
    @Html.EditorFor(m => m.Angenommen)
    @Html.Fmh(Fmh.Button()
        .Text("Absenden")
        .Size(ButtonSize.Sm)
        .Attributes(new { @class = "mt-2" }))
</form>
using System.ComponentModel.DataAnnotations;
using FMH.Komponente.Basis.Ui.Validation.DataAnnotation;

namespace FMH.Komponente.WebUI.Areas.Basis.Models
{
    public class CheckboxRequiredBeispielViewModel
    {
        [Display(Name = "Ich akzeptiere die Bedingungen")]
        [UIHint("Checkbox")]
        [CheckboxRequired(ErrorMessage = "Bitte akzeptieren Sie die Bedingungen")]
        public bool? Angenommen { get; set; }
    }
}
using FMH.Komponente.Basis.Erweiterungen;
using FMH.Komponente.Basis.Ui.Feedback.Alert;
using FMH.Komponente.WebUI.Areas.Basis.Models;
using Microsoft.AspNetCore.Mvc;

namespace FMH.Komponente.WebUI.Areas.Basis.Controllers.Beispiele
{
    [Area("Basis")]
    public class CheckboxRequiredController : Controller
    {
        [HttpGet]
        public IActionResult Index()
        {
            return this.View(new CheckboxRequiredBeispielViewModel());
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public IActionResult Index(CheckboxRequiredBeispielViewModel modell)
        {
            if (this.ModelState.IsValid)
            {
                // Gültig: Checkbox ist angekreuzt -> PRG-Redirect auf die GET-Action.
                this.AddAlert("Formular ist gültig – Validierung erfolgreich.", AlertType.Success, autoHide: true);
                return this.RedirectToAction(nameof(this.Index));
            }

            // Ungültig: dieselbe View mit den Validierungsfehlern erneut anzeigen.
            return this.View(modell);
        }
    }
}

Darstellung

Das CheckboxRequired-Attribut (FMH.Komponente.Basis.Ui.Validation.DataAnnotation) verlangt eine angekreuzte Checkbox — typisch für die Zustimmung zu Bedingungen. Die Eigenschaft ist ein bool?; über [UIHint("Checkbox")] wird das Checkbox-EditorTemplate gerendert. Die Validierung läuft serverseitig (kein eigener Client-Adapter).

[Display(Name = "Ich akzeptiere die Bedingungen")]
[UIHint("Checkbox")]
[CheckboxRequired(ErrorMessage = "Bitte akzeptieren Sie die Bedingungen")]
public bool? Angenommen { get; set; }
  • Gültig nur, wenn die Checkbox angekreuzt ist (true); false oder kein Wert sind ungültig.
  • Das Attribut hat keine Ressourcen-Standardmeldung — ohne gesetzte ErrorMessage bliebe die Meldung leer. Daher ErrorMessage (oder ErrorMessageResourceType/-Name) immer setzen.