Ganzzahl

Das GanzzahlAttribute validiert eine Zeichenkette gegen ganze Zahlen (optional mit Minus). Server- und clientseitig wirksam.

Ganze Zahl

Prüft eine Zeichenkette gegen ganze Zahlen (optional mit Minus).

@model GanzzahlBeispielViewModel

<form asp-area="Basis" asp-controller="Ganzzahl" asp-action="Index" method="post">
    <div asp-validation-summary="All" class="text-danger"></div>
    @Html.EditorFor(m => m.Menge)
    @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;

namespace FMH.Komponente.WebUI.Areas.Basis.Models
{
    public class GanzzahlBeispielViewModel
    {
        [Display(Name = "Menge")]
        [Ganzzahl]
        public string Menge { 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 GanzzahlController : Controller
    {
        [HttpGet]
        public IActionResult Index()
        {
            return this.View(new GanzzahlBeispielViewModel());
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public IActionResult Index(GanzzahlBeispielViewModel modell)
        {
            if (this.ModelState.IsValid)
            {
                // Gültig: Eingabe ist eine Ganzzahl -> 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 GanzzahlAttribute (FMH.Komponente.Basis.Ui.Validation) validiert eine Zeichenkette gegen ganze Zahlen (Muster ^-?[0-9]+$, optionales Minus). Es wird über das String-EditorTemplate gerendert und wirkt server- und clientseitig (data-val-ganzzahl, Adapter jquery.validate.unobtrusive.ganzzahl.js).

[Display(Name = "Menge")]
[Ganzzahl]
public string Menge { get; set; }
  • Gültig: 123, -42. Ungültig: 12.5, abc.
  • Ein leeres Feld ist gültig — für ein Pflichtfeld zusätzlich [Required] setzen.
  • Für Dezimalzahlen stattdessen [Nummer] verwenden.